Pulling in the old model, major refactoring