opaque structs, gotr_user closure for callbacks