Move transaction creation to service