Updated to seperate arcade controller into its own subclass. Comments added. Acknowledgements added.