add transaction abortion function
refactor transactions for ownership assertion