Apply ViewHolder pattern for Adapter