Extensive refactoring, moved all Model-esque classes to Models package