added a ViewHolder to optimize lab 4