applied ViewHolder pattern for smooth scrolling