code: @Override
  	public void addListeners(String nodeID, Tree config) {
  		Tree events = config.get("events");
  		if (events != null && events.isMap()) {
  			String serviceName = Objects.requireNonNull(config.get("name", (String) null));
  			writeLock.lock();
  			try {
  				for (Tree listenerConfig : events) {
  					String subscribe = listenerConfig.get("name", "");
  					String group = listenerConfig.get("group", serviceName);
  
  					// Register remote listener
  					RemoteListenerEndpoint endpoint = new RemoteListenerEndpoint(transporter, nodeID, serviceName,
  							group, subscribe);
  
  					// Get or create group map
  					HashMap<String, Strategy<ListenerEndpoint>> groups = listeners.get(subscribe);
  					if (groups == null) {
  						groups = new HashMap<String, Strategy<ListenerEndpoint>>();
  						listeners.put(subscribe, groups);
  					}
  
  					// Get or create strategy
  					Strategy<ListenerEndpoint> listenerStrategy = groups.get(group);
  					if (listenerStrategy == null) {
  						listenerStrategy = strategy.create();
  						groups.put(group, listenerStrategy);
  					}
  					listenerStrategy.addEndpoint(endpoint);
  				}
  			} finally {
  
  				// Clear caches
  				emitterCache.clear();
  				broadcasterCache.clear();
  				localBroadcasterCache.clear();
  
  				// Unlock reader threads
  				writeLock.unlock();
  			}
  		}
  	}
docs: --- ADD REMOTE LISTENER ---