add testcase and fix apis