Implement caching

minor GUI changes