diff --git a/http_interface.py b/http_interface.py
index 010c75df4088167403d38178196900364b1721d1..bcf88dc72a1c40feab0ba01a08db17ad2bb159ac 100644
--- a/http_interface.py
+++ b/http_interface.py
@@ -25,6 +25,7 @@ print(colored(f"Sending commands control topic {MQTT_CONTROL_CONFIG['ctrl_topic'
 cmd_id = None
 rdic = {}
 
+
 class MyServer(SimpleHTTPRequestHandler):
     # because we use SimpleHTTPRequestHandler, we do not need to implement
     # the do_GET() method (if we use the BaseHTTPRequestHandler, we would need to)
diff --git a/ohmpi.py b/ohmpi.py
index ad000458434fa9eb7ce9135d07e72f408f21bcb7..c999439cfc1259614adbfa31924df4a6231e6967 100644
--- a/ohmpi.py
+++ b/ohmpi.py
@@ -10,6 +10,8 @@ Olivier KAUFMANN (UMONS), Arnaud WATELET (UMONS) and Guillaume BLANCHY (ILVO).
 import os
 import io
 import json
+import warnings
+
 import numpy as np
 import csv
 import time
@@ -58,7 +60,7 @@ class OhmPi(object):
     def __init__(self, settings=None, sequence=None, use_mux=False, mqtt=True, on_pi=None):
         # flags and attributes
         if on_pi is None:
-            _, on_pi = OhmPi.get_platform()
+            _, on_pi = OhmPi._get_platform()
 
         self._sequence = sequence
         self.use_mux = use_mux
@@ -115,7 +117,7 @@ class OhmPi(object):
         print(self.settings)
         # read in acquisition settings
         if settings is not None:
-            self._update_acquisition_settings(settings)
+            self.update_settings(settings)
 
         print(self.settings)
         self.exec_logger.debug('Initialized with settings:' + str(self.settings))
@@ -163,14 +165,14 @@ class OhmPi(object):
         def on_message(client, userdata, message):
             command = message.payload.decode('utf-8')
             self.exec_logger.debug(f'Received command {command}')
-            self.process_commands(command)
+            self._process_commands(command)
 
         self.controller.on_message = on_message
         self.controller.loop_start()
         while True:
             time.sleep(.5)
 
-    def _update_acquisition_settings(self, config):
+    def update_settings(self, config):
         """Update acquisition settings from a json file or dictionary.
         Parameters can be:
             - nb_electrodes (number of electrode used, if 4, no MUX needed)
@@ -212,7 +214,7 @@ class OhmPi(object):
         self.exec_logger.debug(f'OHMPI_CONFIG = {str(OHMPI_CONFIG)}')
 
     @staticmethod
-    def find_identical_in_line(quads):
+    def _find_identical_in_line(quads):
         """Find quadrupole where A and B are identical.
         If A and B are connected to the same relay, the Pi burns (short-circuit).
         
@@ -251,7 +253,7 @@ class OhmPi(object):
         return output
 
     @staticmethod
-    def get_platform():
+    def _get_platform():
         """Get platform name and check if it is a raspberry pi
         Returns
         =======
@@ -269,6 +271,10 @@ class OhmPi(object):
             pass
         return platform, on_pi
 
+    def read_quad(self, filename):
+        warnings.warn('This function is deprecated. Use load_sequence instead.', DeprecationWarning)
+        self.load_sequence(self, filename)
+
     def load_sequence(self, filename):
         """Read quadrupole sequence from file.
 
@@ -292,7 +298,7 @@ class OhmPi(object):
         test_index_elec = np.array(np.where(sequence > self.max_elec))
 
         # locate lines where electrode A == electrode B
-        test_same_elec = self.find_identical_in_line(sequence)
+        test_same_elec = self._find_identical_in_line(sequence)
 
         # if statement with exit cases (TODO rajouter un else if pour le deuxième cas du ticket #2)
         if test_index_elec.size != 0:
@@ -314,7 +320,7 @@ class OhmPi(object):
 
         self.sequence = sequence
 
-    def switch_mux(self, electrode_nr, state, role):
+    def _switch_mux(self, electrode_nr, state, role):
         """Select the right channel for the multiplexer cascade for a given electrode.
         
         Parameters
@@ -366,7 +372,7 @@ class OhmPi(object):
         # another check to be sure A != B
         if quadrupole[0] != quadrupole[1]:
             for i in range(0, 4):
-                self.switch_mux(quadrupole[i], 'on', roles[i])
+                self._switch_mux(quadrupole[i], 'on', roles[i])
         else:
             self.exec_logger.error('A == B -> short circuit risk detected!')
 
@@ -380,17 +386,17 @@ class OhmPi(object):
         """
         roles = ['A', 'B', 'M', 'N']
         for i in range(0, 4):
-            self.switch_mux(quadrupole[i], 'off', roles[i])
+            self._switch_mux(quadrupole[i], 'off', roles[i])
 
     def reset_mux(self):
         """Switch off all multiplexer relays."""
         roles = ['A', 'B', 'M', 'N']
         for i in range(0, 4):
             for j in range(1, self.max_elec + 1):
-                self.switch_mux(j, 'off', roles[i])
+                self._switch_mux(j, 'off', roles[i])
         self.exec_logger.debug('All MUX switched off.')
 
-    def gain_auto(self, channel):
+    def _gain_auto(self, channel):
         """ Automatically set the gain on a channel
 
         Parameters
@@ -463,8 +469,8 @@ class OhmPi(object):
             pin1.value = True
             pin0.value = False
             time.sleep(injection_duration)
-            gain_current = self.gain_auto(AnalogIn(self.ads_current, ads.P0))
-            gain_voltage = self.gain_auto(AnalogIn(self.ads_voltage, ads.P0, ads.P1))
+            gain_current = self._gain_auto(AnalogIn(self.ads_current, ads.P0))
+            gain_voltage = self._gain_auto(AnalogIn(self.ads_voltage, ads.P0, ads.P1))
             pin0.value = False
             pin1.value = False
             print('gain current: {:.3f}, gain voltage: {:.3f}'.format(gain_current, gain_voltage))
@@ -588,7 +594,7 @@ class OhmPi(object):
 
         if self.on_pi:
             # make sure all mux are off to start with
-            self.reset_mux()
+            self._reset_mux()
 
             # measure all quad of the RS sequence
             for i in range(0, quads.shape[0]):
@@ -604,7 +610,7 @@ class OhmPi(object):
                 # switch mux off
                 # self.switch_mux_off(quad)
 
-                self.switch_mux_on(quad)
+                self._switch_mux_on(quad)
 
                 # current injection
                 pin0 = self.mcp.get_pin(0)
@@ -646,11 +652,11 @@ class OhmPi(object):
                 })
 
                 # close mux path and put pin back to GND
-                self.switch_mux_off(quad)
+                self._switch_mux_off(quad)
                 pin0.value = False
                 pin1.value = False
 
-            self.reset_mux()
+            self._reset_mux()
         else:
             pass
         self.status = 'idle'
@@ -662,7 +668,7 @@ class OhmPi(object):
 
     @staticmethod
     def append_and_save(filename, last_measurement):
-        """Append and save last measurement dataframe.
+        """Append and save last measurement dict.
 
         Parameters
         ----------
@@ -684,9 +690,18 @@ class OhmPi(object):
                 w = csv.DictWriter(f, last_measurement.keys())
                 w.writeheader()
                 w.writerow(last_measurement)
-                # last_measurement.to_csv(f, header=True)
 
-    def process_commands(self, command):
+    def _process_commands(self, command):
+        """ TODO
+
+        Parameters
+        ----------
+        command
+
+        Returns
+        -------
+
+        """
         try:
             cmd_id = None
             decoded_message = json.loads(command)
@@ -697,7 +712,7 @@ class OhmPi(object):
             e = None
             if cmd is not None and cmd_id is not None:
                 if cmd == 'update_settings' and args is not None:
-                    self._update_acquisition_settings(args)
+                    self.update_settings(args)
                     status = True
                 elif cmd == 'set_sequence' and args is not None:
                     try:
@@ -738,8 +753,20 @@ class OhmPi(object):
             reply = json.dumps(reply)
             self.exec_logger.debug(f'Execution report: {reply}')
 
-    def measure(self, cmd_id=None):
-        """Run the sequence in a separate thread. Can be stopped by 'OhmPi.stop()'.
+    def measure(self, *args, **kwargs):
+        warnings.warn('This function is deprecated. Use load_sequence instead.', DeprecationWarning)
+        self.run_sequence(self, *args, **kwargs)
+
+    def set_sequence(self, args):
+        try:
+            self.sequence = np.loadtxt(StringIO(args)).astype('uint32')
+            status = True
+        except Exception as e:
+            self.exec_logger.warning(f'Unable to set sequence: {e}')
+            status = False
+
+    def run_sequence(self, cmd_id=None):
+        """ Run the sequence in a separate thread. Can be stopped by 'OhmPi.stop()'.
         """
         # self.run = True
         self.status = 'running'
@@ -759,7 +786,7 @@ class OhmPi(object):
                 self.exec_logger.debug(f'Saving to {filename}')
 
                 # make sure all multiplexer are off
-                self.reset_mux()
+                self._reset_mux()
 
                 # measure all quadrupole of the sequence
                 if self.sequence is None:
@@ -775,14 +802,14 @@ class OhmPi(object):
                         break
 
                     # call the switch_mux function to switch to the right electrodes
-                    self.switch_mux_on(quad)
+                    self._switch_mux_on(quad)
 
                     # run a measurement
                     acquired_data = self.run_measurement(quad, self.settings['nb_stack'],
                                                                    self.settings['injection_duration'])
 
                     # switch mux off
-                    self.switch_mux_off(quad)
+                    self._switch_mux_off(quad)
 
                     # add command_id in dataset
                     acquired_data.update({'cmd_id': cmd_id})
@@ -813,8 +840,11 @@ class OhmPi(object):
         self.thread.start()
 
     def stop(self):
-        """Stop the acquisition.
-        """
+        warnings.warn('This function is deprecated. Use interrupt instead.', DeprecationWarning)
+        self.interrupt()
+
+    def interrupt(self):
+        """ Interrupt the acquisition. """
         self.status = 'stopping'
         if self.thread is not None:
             self.thread.join()
@@ -826,9 +856,13 @@ class OhmPi(object):
         self.cmd_listen = False
         if self.cmd_thread is not None:
             self.cmd_thread.join()
-        self.exec_logger.debug(f'Stopped listening to tcp port.')
+        self.exec_logger.debug(f'Stopped listening to control topic.')
         exit()
 
+    def restart(self):
+        self.exec_logger.info('Restarting pi...')
+        os.system('reboot')
+
 
 VERSION = '2.1.5'
 
@@ -840,7 +874,7 @@ print(colored(r' ________________________________' + '\n' +
               r' \___/\_| |_/\_|  |_/\_|    \___/ ', 'red'))
 print('OhmPi start')
 print('Version:', VERSION)
-platform, on_pi = OhmPi.get_platform()
+platform, on_pi = OhmPi._get_platform()
 if on_pi:
     print(colored(f'Running on {platform} platform', 'green'))
     # TODO: check model for compatible platforms (exclude Raspberry Pi versions that are not supported...)