OOP clean