need to improve the cache set/get this is a bit crazy