Implemented both types of cache, updated GUI