do not pass db around, use the reference stored in the  Transaction istance