don't modify blocks inplace, we need both pre values