Refactoring: TapObject was splitted into a controller and a renderer