construct and pass around a match object