Controllers are now implemented using an interface.

Making way for AI controllers