public function add($input, $name = null)
    {

        if (
            is_a($input, 'Slick\Form\InputFilter\InputFilterInterface') &&
            is_null($name)
        ) {
            throw new InvalidArgumentException(
                "You must set a name to add an input filter to the list of " .
                "inputs of an input filter."
            );
        }

        if (
            !is_a($input, 'Slick\Form\InputFilter\InputFilterInterface') &&
            !is_a($input, 'Slick\Form\InputFilter\InputInterface')
        ) {
            throw new InvalidArgumentException(
                "You can only add an input or input filter to an input filter."
            );
        }

        $key = $name;
        if (is_null($name)) {
            $key = $input->name;
        }

        $this->_inputs[$key] = $input;
        return $this;
    }