prevent transactions from being committed twice