the logic is simple, but I need to set it up on a more 'OOP' way