OOP version working