added monotonically decreasing functionality