The 4 new classes are a decomposition of Subject. We could reduce the constructor arguments by passing 2 factories around: one for the exceptions, that knows about the presenter; and one for the subject, that knows about the presenter, matchers and example node. The unwrapper is stateless, we don't need to pass it around.