adding OOPness