diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/IMuonFitFunctionControl.h b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/IMuonFitFunctionControl.h
index 1f5acd1e88feb5bffdef97d65c3f166b7e9e008e..7f1b49a8beb632a59f6b0bdb896f17403a5a8df1 100644
--- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/IMuonFitFunctionControl.h
+++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/IMuonFitFunctionControl.h
@@ -35,6 +35,12 @@ namespace MantidWidgets {
 class EXPORT_OPT_MANTIDQT_MANTIDWIDGETS IMuonFitFunctionControl {
 public:
   virtual ~IMuonFitFunctionControl() {}
+  virtual void setFunction(const QString &funcString) = 0;
+  virtual void runFit() = 0;
+  virtual void runSequentialFit() = 0;
+
+signals:
+  void functionUpdateRequested(bool sequential);
 };
 
 } // namespace MantidWidgets
diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h
index 6bdcbc12b2b80967e7d0e2163f59f5e4a838d976..ea10ead4530e69517d5309aa7cd9c5bd54e42be5 100644
--- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h
+++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h
@@ -49,6 +49,12 @@ public:
   void finishHandle(const Mantid::API::IAlgorithm *alg) override;
   /// Add an extra widget into the browser
   void addExtraWidget(QWidget *widget);
+  /// Set function externally
+  void setFunction(const QString &funcString) override;
+  /// Run a non-sequential fit
+  void runFit() override;
+  /// Run a sequential fit
+  void runSequentialFit() override;
 
 public slots:
   /// Perform the fit algorithm
diff --git a/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp b/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp
index f66958033451cba75fc8d5ed52bfaf7af4a8ebbe..3de426563148961e74133afa726236d2e717081a 100644
--- a/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp
+++ b/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp
@@ -241,10 +241,15 @@ void MuonFitPropertyBrowser::populateFunctionNames() {
   }
 }
 
+/**
+ * Updates function prior to running a fit
+ */
+void MuonFitPropertyBrowser::fit() { emit functionUpdateRequested(false); }
+
 /**
  * Creates an instance of Fit algorithm, sets its properties and launches it.
  */
-void MuonFitPropertyBrowser::fit() {
+void MuonFitPropertyBrowser::runFit() {
   std::string wsName = workspaceName();
 
   if (wsName.empty()) {
@@ -303,7 +308,16 @@ void MuonFitPropertyBrowser::fit() {
 /**
  * Show sequential fit dialog.
  */
-void MuonFitPropertyBrowser::sequentialFit() { emit sequentialFitRequested(); }
+void MuonFitPropertyBrowser::runSequentialFit() {
+  emit sequentialFitRequested();
+}
+
+/**
+ * Update function prior to running a sequential fit
+ */
+void MuonFitPropertyBrowser::sequentialFit() {
+  emit functionUpdateRequested(true);
+}
 
 /**
  * Connect to the AnalysisDataService when shown
@@ -356,5 +370,13 @@ void MuonFitPropertyBrowser::addExtraWidget(QWidget *widget) {
   }
 }
 
+/**
+ * Called externally to set the function via a string
+ * @param funcString :: [input] Fit function as a string
+ */
+void MuonFitPropertyBrowser::setFunction(const QString &funcString) {
+  throw std::runtime_error("Not implemented yet!");
+}
+
 } // MantidQt
 } // API