recalculate value, don't just add/sub