uid is optional, have to handled specifically

otherwise, ctx.Uid is a pointer