be soft not weak (WeakReference -> SoftReference)

use SoftReference when we have a Reference to an object which should be GC'd only when memory gets full