oop using moose