change interface IViewHolder to abstract class ViewHolder