cleanup

got rid of some bad coupling between the viewmodel and view. cleaned up
dead code. Also split classes out into their own files, the code I'm
replicating had it all in one file.