restructure callables
warp return to PyObj