btw, you could do a factory method on the exception. see for example https://github.com/doctrine/phpcr-odm/blob/master/lib/Doctrine/ODM/PHPCR/Exception/ClassMismatchException.php - then you would not repeat this text in every extractor.