record transactions to hdf only via function call