update oop implementation