The current trend for new programming languages seems to be to include more and more nonhierarchical OOP features. Some examples are new-style interfaces in Google's Go, traits in Scala and Fortress, and roles in Perl 6. This talk will focus on roles as provided by Perl 5's Moose object system, as that seems to have the most uptake and is most relevant for OSDC.tw's audience. Furthermore, because of roles' "class building-block" nature, they are perhaps the best fit for open source of any nonhierarchical system thus far.