I agree with all the above discussion about the List being a container of Number objects and it should have a total() or sum() method which adds up the Number objects it contains. It's really as HAS-A relationship, not an IS-A relationship. Look at the CPAN module Object::Array when implementing your List object. I'd subclass Object::Array, personally. I also agree with the suggestion that both Number and List are perhaps poorly chosen names. I'd go with "Roll" and "Die", I think. (And not "Roll::Die" or "Die::Roll" either.)