Made matchers construction lazy so that values aren't accumulated