Refactors without_offer into scope
Breaks up Matcher into smaller methods