deal with negative values and deltas