Added a controller interface so two controllers can be implemented