Adding OOPS based implementation