refactor column_heuristic