enhanced oop oriented structure