A good solution should
Bonus