Fully merge with amasciul's UVweb first implementation: add custom Adapter and custom ViewHolder