Changed the list adapter to use ViewHolder pattern for performance.