the transaction attributes directive is soo much cleaner than hard coding everything