refactoring logic out of the views and into models .. fat models