Transaction controller