OOP shit up
In working condition now