refactors, and cleans up listview