allow column reordering and missing column support