code: public static synchronized final boolean init(IWingsModule module, Class<? extends WingsEndpoint>... endpointClazzes) {
          // No-op if already initialized.
          if (!sIsInitialized) {
              WingsInjector.init(module);
              try {
                  final Set<WingsEndpoint> endpoints = new HashSet<WingsEndpoint>();
                  final Set<Integer> endpointIds = new HashSet<Integer>();
                  for (Class clazz : endpointClazzes) {
                      WingsEndpoint endpoint = (WingsEndpoint) clazz.newInstance();
                      endpoints.add(endpoint);
  
                      // Ensure that endpoint ids are unique.
                      if (!endpointIds.add(endpoint.getEndpointId())) {
                          return false;
                      }
                  }
                  sEndpoints = endpoints;
                  sIsInitialized = true;
              } catch (InstantiationException e) {
                  WingsInjector.getLogger().log(Wings.class, "init", e.toString());
              } catch (IllegalAccessException e) {
                  WingsInjector.getLogger().log(Wings.class, "init", e.toString());
              }
          }
  
          return sIsInitialized;
      }
docs: Initializer used to pass dependencies for Wings. This method must be called in the
  {@link android.app.Application#onCreate()}.
  
  @param module          the Dagger module implementing {@link com.groundupworks.wings.IWingsModule}.
  Pass {@link com.groundupworks.wings.Wings.DefaultModule} to use the default
  components.
  @param endpointClazzes the endpoints that Wings can share to, passed as {@link java.lang.Class} types.
  @return {@code true} if Wings is successfully initialized; {@code false} otherwise. Once {@link true}
  has been returned, calling this method will have no effect, and the return value will always be
  {@link true}.