add README
use weird java generics for cache