Shifting to require js, allowing better future support for MVVM

I think its all working, point any bugs back to me if you have issues and i'll fix them. :)