@Override
 public <T> BeanConfigurator<T> addBean() {
   checkWithinObserverNotification();
   BeanConfiguratorImpl<T> configurator =
       new BeanConfiguratorImpl<>(getReceiver().getClass(), getBeanDeploymentFinder());
   additionalBeans.add(BeanRegistration.of(configurator, getReceiver()));
   return configurator;
 }
 @Override
 public void addBean(Bean<?> bean) {
   checkWithinObserverNotification();
   Preconditions.checkArgumentNotNull(bean, "bean");
   ExternalBeanAttributesFactory.validateBeanAttributes(bean, getBeanManager());
   validateBean(bean);
   additionalBeans.add(BeanRegistration.of(bean, getReceiver()));
   BootstrapLogger.LOG.addBeanCalled(getReceiver(), bean);
 }
 @Override
 public InterceptorConfigurator addInterceptor() {
   InterceptorConfiguratorImpl configurator = new InterceptorConfiguratorImpl(getBeanManager());
   additionalBeans.add(BeanRegistration.of(configurator));
   return configurator;
 }