@Override
 public synchronized void remove(L listener) {
   super.remove(listener);
   if (isEmpty()) {
     synchronized (ListenersByUuid.this) {
       map.remove(uuid);
     }
   }
 }
 public synchronized void remove(UUID uuid, L listener) {
   Listeners<L> listeners = map.get(uuid);
   if (listeners != null) listeners.remove(listener);
 }