MatchResult interface and Matcher class