Separate domain logic from data persistence, based on the Repository Pattern.