switched to cython