update primitive ops