Make MatcherContext an interface