code: private ListenerTarget getLinearTarget(final Listener listener) {
      ListenerTarget target = targets.get(listener);
      if (target == null) {
        target = new ListenerTarget(listener);
        targets.put(listener, target);
      }
      return target;
    }
docs: Given a listener passed as argument creates or returns a lazy instance of a Picasso Target.
  This implementation is needed because Picasso doesn't keep a strong reference to the target
  passed as parameter. Without this method Picasso looses the reference to the target and never
  notifies when the resource has been downloaded.
  
  Listener and Target instances are going to be stored into a WeakHashMap to avoid a memory leak
  when ImageLoader client code is garbage collected.