added tests
all tests are passed