Added interfaces to allow injection and mocking. Setup test to use nuget packages to allow easier setup