Unit Of Work as a separate entity

Unit Of Work extracted from Repository, appropriate refactorings applied
throughout the code
git should ignore downloaded nuget packages