viewHolder should be local and unique for each view