update primitive