refactor CardView out of ListView