added test cases
passes all test cases
first tested and stable release