* add tests * try to fix * fix compile error * refactor code * rename * doc * refactor test * simple rename