Added an actual controller, which must be extended to provide support
for input