add oop features