changed the design again, as it was not OOP in any ways