'Attempt to build a model.  Store the result to prevent unnecessary
re-building.'

def build_model(self, verbose=False):

    if (self._result is None):
        modelbuilder = self.get_model_builder()
        (self._result, self._model) = modelbuilder._build_model(self.goal(), self.assumptions(), verbose)
    return self._result
