1. Remove data access and business logic 2. Use action filters to handle repetitive logic 3. Map your view models using AutoMapper