composered the project
added unittests