OOP is hard