Introducing DI with Ninject

Adds Initial Dependency Injection through Ninject and does some cleanup