some changes to oop