implement transactions, remove all IOs from coder