update oop implementation(demo)