Added some OOP, I know the code is shit I will fix it...