adding a proposal for single-object composition
instead of inheritance