Updated OO design