Large commit; refactors controller functions into CanvasModules Class to remove double Canvas calls; updates tests to pass