first working implementation of transactions