Implemented Dependency Injection and switched to Test Driven Development, functional tests up to this point were created