modify test case
add engine test cases
add test cases
add some methods, and fix some bugs