refeactor list view