refactor table listing to support listing columns
implement column listing