preserve the old value, can't remove from nil