generalized rest, txnbuilder, and further separated concernes