Added nuget moq, Refactored for moq, added some tests