oop boilerplate