Initial refactoring done, need to fix up some user model input areas
Finished structural changes, should be working (untested)