fix typo
add more tests
add more tests