updates inspired by Jacobian