public static function factory(ApplicationServerInterface $applicationServer, ExtractorNodeInterface $configuration)
    {

        // create a new reflection class instance
        $reflectionClass = new \ReflectionClass($configuration->getType());

        // initialize the container configuration with the base directory and pass it to the thread
        $params = array($applicationServer->getInitialContext(), $configuration);

        // create and append the thread instance to the internal array
        return $reflectionClass->newInstanceArgs($params);
    }