add cython by lishuming