the variable `empty_value` should be kept for BC