Add request caching and simple UI