Composition over inheritance