protected function _normalizeIterator($iterable)
    {
        if ($iterable instanceof stdClass) {
            $iterable = (array) $iterable;
        }

        if (!is_array($iterable) && !($iterable instanceof Traversable)) {
            throw $this->_createInvalidArgumentException(
                $this->__('Invalid iterable'),
                null,
                null,
                $iterable
            );
        }

        if ($iterable instanceof Iterator) {
            return $iterable;
        }

        if (is_array($iterable)) {
            return $this->_createArrayIterator($iterable);
        }

        // If not array them gotta be traversable
        return $this->_createTraversableIterator($iterable);
    }