def do_execute(self):
        """
        The actual execution of the actor.

        :return: None if successful, otherwise error message
        :rtype: str
        """
        inst = self.input.payload
        if not inst.has_class:
            return "No class set!"

        # load model?
        if self._model is None:
            model = None
            fname = str(self.resolve_option("model"))
            if os.path.isfile(fname):
                model = serialization.read(fname)
            else:
                name = self.resolve_option("storage_name")
                if name in self.storagehandler.storage:
                    model = self.storagehandler.storage.get(name)
                    if isinstance(model, ModelContainer):
                        model = model.get("Model").jobject
            if model is None:
                return "No model available from storage or serialized file!"
            self._is_classifier = is_instance_of(model, "weka.classifiers.Classifier")
            if self._is_classifier:
                self._model = Classifier(jobject=model)
            else:
                self._model = Clusterer(jobject=model)

        if self._is_classifier:
            cls = self._model.classify_instance(inst)
            dist = self._model.distribution_for_instance(inst)
            label = inst.class_attribute.value(int(cls))
            cont = ClassificationContainer(inst=inst, classification=cls, distribution=dist, label=label)
        else:
            cls = self._model.cluster_instance(inst)
            dist = self._model.distribution_for_instance(inst)
            cont = ClusteringContainer(inst=inst, cluster=int(cls), distribution=dist)

        self._output.append(Token(cont))
        return None