convert to partial to allow for other transaction types