Implemented OO design.