Fix #20; support transactions