fix compile error
fix typo
fix arguments
add tests
fix type parameters