add interface to fix compile error
continue to fix compilation errors, finally, the compilation passed... wtf