txn skeleton
implement transaction functions