breakdown of main.js into individual controllers