Refactored. Added nuget packages.