Adds a PyFlux model to the aggregating algorithm
        
        Parameters
        ----------
        model : pf.[MODEL]
            A PyFlux univariate model

        Returns
        ----------
        - Void (changes self.model_list)

def add_model(self, model):
        """ Adds a PyFlux model to the aggregating algorithm
        
        Parameters
        ----------
        model : pf.[MODEL]
            A PyFlux univariate model

        Returns
        ----------
        - Void (changes self.model_list)
        """

        if model.model_type not in self.supported_models:
            raise ValueError('Model type not supported for Aggregate! Apologies')

        if not self.model_list:
            self.model_list.append(model)
            if model.model_type in ['EGARCH', 'EGARCHM', 'EGARCHMReg', 'GARCH', 'LMEGARCH', 'LMSEGARCH', 'SEGARCH', 'SEGARCHM']:
                self.data = np.abs(model.data)
            else:
                self.data = model.data
            self.index = model.index
        else:
            if model.model_type in ['EGARCH', 'EGARCHM', 'EGARCHMReg', 'GARCH', 'LMEGARCH', 'LMSEGARCH', 'SEGARCH', 'SEGARCHM']:
                if np.isclose(np.abs(np.abs(model.data[-self.match_window:])-self.data[-self.match_window:]).sum(),0.0) or model.model_type=='GPNARX':
                    self.model_list.append(model)
                else:
                    raise ValueError('Data entered is deemed different based on %s last values!' % (s))
            else:
                if np.isclose(np.abs(model.data[-self.match_window:]-self.data[-self.match_window:]).sum(),0.0) or model.model_type=='GPNARX':
                    self.model_list.append(model)
                else:
                    raise ValueError('Data entered is deemed different based on %s last values!' % (s))

        self.model_names = [i.model_name for i in self.model_list]