Implemented Ninject for IOC

Inversion of control for the core project