Object oriented implementation