gave up on OOP sorry