My solution, using simple composition