private function callAdditionalOptionsMethod($item)
    {
        $settings = new InputSettingsForm;
        if (!$settings->isValid($item)) {
            throw new InvalidInputSettingsException;
        }
        $settings->bind($item, new \stdClass);

        $className = $item[InputSettingsForm::TYPE_PARAM];

        if(!class_exists($className)) {
            throw new NotFoundException();
        }
        if(!in_array($className, $this->builders)) {
            throw new NotDefinedException();
        }

        $builderObject = new $className;
        $builderObject->setAdditionalOptions();
        return $builderObject->getAdditionalOptions();

        $setMethod = new \ReflectionMethod($className, self::INIT_ELEMENT_METHOD);
        $getMethod = new \ReflectionMethod($className, self::ADDITIONAL_OPTIONS_METHOD);
        $setMethod->invokeArgs($builderObject, array($settings));
        return $getMethod->invokeArgs($builderObject, array($settings));
    }