factored out javascript, css and html into seperate files, as well as added a seperate js file which has the purpose of populating the view model