Refactored the project into two models for easier automated testing.