implement db transaction with Sean, wip...