redesigning object model