don't require match until it's needed