Use Factory and MockProvider for creating mocks
Dont mock static methods
housekeeping
Use Injector for property injection
Moved method History to its own object
Integrated return type hint mocking
Didn't mean to commit local repository
Constructor injection using doc comment type hints