code: public static <T> EventScope<T> register (final EventScope<T> pScope) {
  
          if (pScope.getBaseClass () == null) {
              throw new IllegalArgumentException ("with public event scopes, base types are mandatory");
          }
  
          if (null != get (pScope.getBaseClass ())) {
              throw new IllegalArgumentException ("already registered to type " + pScope.getBaseClass ());
          }
  
          sScopes.put (pScope.getBaseClass () , pScope);
  
          return pScope;
  
      }
docs: Registers a new public {@link EventScope} for its base type. This is an
  expensive
  operation, so make sure to only call as seldom as possible.
  
  @param pScope
  a event scope.