restructuring the project

organizing the project, and adding nuget for easier distribution