[CHANGE] rewrote caching class