refactored a few things
added new test project