some success with transactions. need more testing