Big refactor to IoC via Ninject, closes #27