use guava cache class for model cache

it has expiration time and better asynchronous behaviour