add some oop