Extract a Transaction's source out into its own class, rather than referring to the individual attributes.