Modified to composite instead polymorphism