Further refactoring to clean up more model logic from the controller - sets us up nicely for adding in the views we require