cut the MatcherImplicits trait into several small traits