Adding documentation
Updating interfaces for mocking to support singleton