Refactor Matcher