initial commit - ALL OF THE THINGS
breaking out into controllers and viewmodels
merge conflict