code: protected static <C extends Component<C, I>, I extends IInterface> void load(final Context context, final Descriptor<C, I> descriptor, final ConnectionCallback<C> callback) {
  
  		Utils.notNull(context, "context must not be null");
  		Utils.notNull(descriptor, "context must not be null");
  
  		if (AccessTokenManager.get(context).hasToken()) {
  			bindToService(context, descriptor, callback);
  		} else {
  			AccessTokenManager.get(context).requireAccessToken(context, new AccessTokenManager.RegistrationCallback() {
  
  				@Override
  				public void onRegistrationSuccessful() {
  					Log.d("Component" , "Access Toekn: " + descriptor);
  					bindToService(context, descriptor, callback);
  				}
  
  				@Override
  				public void onRegistrationError(SPFError errorMsg) {
  					callback.onError(errorMsg);
  				}
  			});
  		}
  
  	}
docs: Loads a local component asynchronously.
  
  @param context
  - the context to use to bind to the service
  @param descriptor
  - a {@link Descriptor} to handle the creation of the
  component;
  @param callback
  - the callback to be notified when the service is available
  @param <C>
  the type of the Component concrete implementation
  @param <I>
  the type of the AIDL interface that is wrapped by the
  component