added unit tests part1
added unit test commit part2
added unit test commit part3
added unit test commit part4
added unit test commit part5