work on return types, config driven transactions and transaction context