Re-factored so that the Transaction User does not pass messages directly to Transport, but goes via the Transaction