refactor list view to handle POST