marginal update