Added interfaces ShipController and PlayerController. Needs refactoring. Made Event no longer generic, as return values are not being used.