enhanced oop