we need to control transactions ourselves