a bit cythonize