Refactored to use new interfaces and a Matcher object