OOP updated