Use HashMap instead of WeakHashMap
for first-level cache map