add simple cache system