oop variant