move delete into TransactionHandler