add cache provider interface and Map cache class