using PY_XDECREF instead of free