derive the 'ControlledShip' class (make 'Controlled' behavior abstract from ship logic)