added code and test project