complete pos-oop