public function transform(array $element)
    {
        // argument: [name, mode, description, default]
        // option: [name, shortcut, mode, description, default]

        $isArgument = $this->isArgument($element[0]);

        $class = 'Symfony\Component\Console\Input\Input'.($isArgument ? 'Argument' : 'Option');

        $reflector = new \ReflectionClass($class);

        if ($isArgument)
        {
            $element[1] = $this->transformMode($element[1]);
        }
        else
        {
            $element[2] = $this->transformMode($element[2]);
        }

        $element[0] = $this->cleanName($element[0]);

        return $reflector->newInstanceArgs($element);
    }