callback as a cfunc not a python func