Lots of de-linting
Added factory for convenience, no dep inj syntax
Removed mockito dep