composition instead of inheritance