more flexible column reordering