xid should be optional