def save(self, doc):
        if doc.id:
            return self.update(doc)
        else:
            return self.insert(doc)
def notify(self, means, covariances, clusters):
        """!
        @brief This method is used by the algorithm to notify observer about changes where the algorithm
                should provide new values: means, covariances and allocated clusters.