Added more decoupling to TransactionGenerationController