Lots of changes, getting dependency injection and tests in there
Adding things that VS didn't pick up