public function pushMany(array $elements): Collection
    {
        foreach($elements as $element) {


            // IF the item is an array...
            if (is_array($element))
            {
                // THEN attempt to instantiate it before appending it!
                $element = new $this->type($element);

                if (get_class($element) != $this->type && !is_subclass_of($element, $this->type, true))
                    throw new \Exception("[MVQN\Collections\Collection] The element type: '".
                        get_class($element)."' must match or extend '" .
                        $this->type . "'!");

                $this->elements[] = $element;
            } else
            // IF the item is an object...
            if (is_object($element))
            {
                if (get_class($element) != $this->type && !is_subclass_of($element, $this->type, true))
                    throw new \Exception("[MVQN\Collections\Collection] The element type: '".
                        get_class($element)."' must match or extend '" .
                        $this->type . "'!");

                // THEN it does not need to be instantiated, simply append it!
                $this->elements[] = $element;
            }
            else
            {
                if (get_class($element) != $this->type && !is_subclass_of($element, $this->type, true))
                    throw new \Exception("[MVQN\Collections\Collection] The element type: '".
                        get_class($element) . "' must match or extend '" . $this->type . "'!");

                // OTHERWISE, simply add the type!
                $this->elements[] = $elements;
            }
        }

        //$this->elements += $this->validElements($elements);
        return $this;
    }