refactor populate data in listview