use callable instead of transactionCOntent