@Override
    protected void configure() {

      bind(EntityManagerFactory.class).toInstance(emf);

      TransactionInterceptor txInterceptor = new TransactionInterceptorImpl();
      requestInjection(txInterceptor);
      bind(TransactionInterceptor.class).toInstance(txInterceptor);
      bindInterceptor(Matchers.any(), Matchers.annotatedWith(Transactional.class), txInterceptor);

      bind(OuterTransactedClass.class);
      if (causeException) {
        bind(NestedTransactedClass.class)
            .to(NestedTransactedClassWhichThrowsRuntimeExceptionImpl.class);
      } else {
        bind(NestedTransactedClass.class).to(NestedTransactedClassImpl.class);
      }
    }