better OOP functions