support more sophisticated transactions