Move to a composition over inheritiance solution