Added Ninject.

Classes now have their dependencies injected via constructor injection.

Extracted interfaces for dependencies.