Object Oriented implementation