cumulative changes

implement #861