@Override
 public ManagedReference getReference() {
   final BeanManagerImpl beanManager = this.beanManager.getValue();
   final CreationalContext<?> ctx;
   if (bean == null) {
     ctx = beanManager.createCreationalContext(null);
   } else {
     ctx = beanManager.createCreationalContext(bean);
   }
   final Object instance = injectionTarget.produce(ctx);
   return new WeldManagedReference(ctx, instance, injectionTarget, interceptorInjections);
 }