diff --git a/.vscode/TODO.code-snippets b/.vscode/TODO.code-snippets
new file mode 100644
index 0000000000000000000000000000000000000000..9fef7b395611842ff6260ad75439d6cd8c6992dd
--- /dev/null
+++ b/.vscode/TODO.code-snippets
@@ -0,0 +1,26 @@
+{
+	// Place your mitik-guide workspace snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and 
+	// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope 
+	// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is 
+	// used to trigger the snippet and the body will be expanded and inserted. Possible variables are: 
+	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. 
+	// Placeholders with the same ids are connected.
+	// Example:
+	// "Print to console": {
+	// 	"scope": "javascript,typescript",
+	// 	"prefix": "log",
+	// 	"body": [
+	// 		"console.log('$1');",
+	// 		"$2"
+	// 	],
+	// 	"description": "Log output to console"
+	// }
+	"TODO": {
+		"scope": "markdown",
+		"prefix": "TODO",
+		"body": [
+			"{- TODO: $1 -} $0"
+		],
+		"description": "A todo highlited in red with diff"
+	}
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index 73e2aa386852effbdb98de894cdf93869f72d916..e65f90bd25a31f2639f20b011c80f24b23709c59 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,8 @@ If you plan to use this code in your work, we kindly request that you cite the f
 
 # **Introduction**
 
+{- TODO: is this text useful ? -} 
+
 The MITIK project proposal is to carry out non-intrusive passive measurements to analyze the mobility of users through contacts while they are moving. For that, the goal is to use probe request packets from off-the-shelf mobile devices with wireless communication (specifically Wi-Fi). To ensure GPDR compliance, a data anonymization/sanitization process is carried out so that probe requests are received by the _sniffers_ [4]. The system, as a whole, is composed of an architecture that comprises three phases, as shown in Figure 1.
 
 <div style="text-align:center">
@@ -27,9 +29,7 @@ Therefore, there is a need to integrate all the current developments into one un
 
 # **MITIK management tool**
 
-This repository contains files and firmware that is used to manage practical experiments of MITIK project in La Rochelle.
-
-Basically this tool enables the management of sniffers through a "sniffer manager".
+MITIK-MGMT is a management tool made to set-up sniffers, synchronize experiments and extract the results.  
 
 ## **Sniffer manager**
 
@@ -77,14 +77,17 @@ Instructions are defined in Ansible's playbooks used to prepare all instructions
 - [x] Integrate code sources from [1], [5]
 - [x] Make available pcap files to start next steps (Phase 2 - Trace handling engine)
 
-## Test and Deploy
+## Future plans
+
+- [ ] Positioning using GPS (coordinates lat, lon)
+- [ ] gzip compression
+- [ ] Data transfer to manager PC / Mitik server
 
-- [x] Time synchronization
-- [x] Interfaces configuration
-- [x] Sync and positioning using GPS (coordinates lat, lon)
-- [x] Timeout function in Scapy-sniffer
-- [x] gzip compression
-- [x] Data transfer to manager PC / Mitik server
+
+## **Installation**
+
+See [DOCUMENTATION.md](./docs/DOCUMENTATION.md) for installation, setup and usage instructions.\
+See [PLAYBOOKS.md](./docs/PLAYBOOKS.md) for information about the available playbooks.
 
 ***
 
@@ -97,10 +100,6 @@ Figure 3 shows the flowchart for configuring the per-technology sniffing engine.
 </figure>
 </center>
 
-## **Installation**
-
-Check the [installation guide](./docs/Installation%20manual.md)
-
 ## **References**
 
 [1] Fernando Dias de Mello Silva, Abhishek Kumar Mishra, Aline Carneiro Viana, Nadjib Achir, Anne Fladenmuller, and Luís Henrique M. K. Costa. Performance analysis of a privacy-preserving frame sniffer on a raspberry pi. In 6th Cyber Security in Networking Conference (CSNet), pages 1–7, October 2022.
diff --git a/docs/DOCUMENTATION.md b/docs/DOCUMENTATION.md
index 729da807bd0544f84f7bd064356cfb0b4fa1d194..7c6ea20c5da67a06291d9be7a276c862167d31ae 100644
--- a/docs/DOCUMENTATION.md
+++ b/docs/DOCUMENTATION.md
@@ -4,6 +4,14 @@
 It contains scripts and playbooks that can be ran with [Ansible](https://wiki.archlinux.org/title/Ansible), which uses SSH to control fleets of devices remotely (`nodes`).
 > Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs.
 
+## Table of Contents
+
+[TOC]
+
+## Playbooks
+
+Visit [PLAYBOOKS.md](./PLAYBOOKS.md) for detailed information about each playbook.
+
 ## Installation
 It requires installing ansible on your controlling computer (`master`):
 ```bash
diff --git a/docs/GPS_SETUP.md b/docs/GPS_SETUP.md
deleted file mode 100644
index 1231ac9cd9cd81d26f60065b265198bd48f0dbaf..0000000000000000000000000000000000000000
--- a/docs/GPS_SETUP.md
+++ /dev/null
@@ -1,100 +0,0 @@
-# **Installing the sniffer manager**
-
-The sniffer manager consists of several configuration components. Each tool used will be discussed below to ensure the succesfull tool implementation.
-
-## **Hardware**
-
-### **Raspberry Pi**
-The sniffers use Raspbian Bullseye simplified version installed on the Raspberry Pi 4B. Raspberry PI allows the use of low-cost controllers to enable other functionalities such as GPS.
-
-### **Wireless interfaces**
-Each Raspberry Pi is equipped with external TP-Link TL-WN722N wireless interfaces which make available the monitor mode, required for the analysis of captured network traffic in the sniffer. 
-
-### **GPS module**
-Each Raspberry Pi is equipped with an [u-blox NEO 6M-0-001](https://content.u-blox.com/sites/default/files/products/documents/NEO-6_DataSheet_%28GPS.G6-HW-09005%29.pdf). This module has one timepulse PPS module, in addition to the stand-alone GPS receiver.
-
-<center>
-<figure>
-  <img src="../figures/gps_module.png" alt="gps_module"/>
-  <figcaption>Figure 1. GPS module.</figcaption>
-</figure>
-</center>
-
-## **Software**
-
-### **Ansible**
-
-The sniffer manager uses Ansible to configure all the sniffer parameters. This can be used remotely or locally. So, we use our own made Ansible-based tool to configure the sniffers with all the required parameters. Ansible is compatible with Linux distributions Mac OS and Windows. Currently, we use a Macbook as manager for our development.
-
-```
-# apt install ansible -y
-```
-
-To establish communication with the sniffers, an inventory is defined. Each sniffer is configured with a static IP. Besides that, the sniffers are organized in groups (super-sniffers).
-
-### **Time synchronization and GPS configuration**
-
-We consider to use time synchronization via GPS PPS (Pulse Per Second) signal. 
-
-Install **gpsd** for GPS decoding of both time and position; **pps-tools** to verify PPS signals from the GPS; and **chrony** to handle PPS signals. 
-```
-# apt install gpsd gpsd-clients pps-tools chrony
-```
-
-Install **pynmea2** for interpretation of messages provided by the GPS based on the NMEA 0183 [1]. NMEA format has different properties, depending on its sentence type and the properties in the message data. For this application, $GPGGA format is udes to extract latitude, longitude and datetime.
-```
-# pip3 install pynmea2
-```
-
-PPS configuration requires intruction definitions in _/boot/config.txt_. For NMEA data from the serial communication, it is necessary to enable UART communication and set the baud rate. 
-
-```
-# bash -c "echo 'dtoverlay=pps-gpio,gpiopin=18' >> /boot/config.txt"
-# bash -c "echo 'enable_uart=1' >> /boot/config.txt"
-# bash -c "echo 'init_uart_baud=9600' >> /boot/config.txt"
-```
-
-It is also necessary to add PPS in _/etc/modules_.
-```
-# bash -c "echo 'pps-gpio' >> /etc/modules
-```
-
-#### **Pin connections**
-
-| GPS   | Raspberry Pi    |
-| :---: |      :---:      |         
-| PPS   | Pin 12 (GPIO 18)|
-| VCC   | Pin 4           |
-| GND   | Pin 6           |
-| RX    | Pin 8           |
-| TX    | Pin 10          |
-
-<center>
-<figure>
-  <img src="../figures/gps_conn.png" alt="gps_connection"/>
-  <figcaption>Figure 2. Wire up GPS module to Raspberry Pi.</figcaption>
-</figure>
-</center>
-
-It is needed to make the UART serial port enabled:
-
-```
-# raspi-config nonint do_serial 2
-```
-Configuration of **gpsd** in _/etc/default/gpsd_ to connect before polling whatever GPS must be associated with it. This is used to provide reference clock information to ntpd or chronyd. Moreover, the device argument should be defined as /dev/ttyS0 to /dev/pps0 to monitor the serial data for PPS.
-
-```
-# Default settings for the gpsd init script and the hotplug wrapper.
-START_DAEMON="true"
-USBAUTO="true"
-DEVICES="/dev/ttyS0 /dev/pps0"
-GPSD_OPTIONS="-n"
-GPSD_SOCKET="/var/run/gpsd.sock"
-```
-
-Configuration of PPS as time reference for **chrony** server. 
-
-```
-# bash -c "echo 'refclock SHM 0 delay 0.200 refid NMEA' >> /etc/chrony/chrony.conf"
-# bash -c "echo 'refclock PPS /dev/pps0 refid PPS' >> /etc/chrony/chrony.conf"
-```
diff --git a/docs/PLAYBOOKS_old.md b/docs/PLAYBOOKS_old.md
deleted file mode 100644
index 0193b21dda1f5b7a753f87f6733d8dcbcf3a9107..0000000000000000000000000000000000000000
--- a/docs/PLAYBOOKS_old.md
+++ /dev/null
@@ -1,100 +0,0 @@
-# **Sniffers' configuration**
-
-Ansible[^1] involves a common set of concepts and tools for system automation. An inventory to define the hosts and groups of hosts participants that will be operated by the playbooks. Once the inventory has been defined, a set of playbooks have been programmed to perform tasks on the sniffers. The execution of the playbooks depends on the modules available in the Ansible platform. Finally, the system global interpreter is based on Python. 
-
-[^1]: https://www.ansible.com/
-
-The proposed topology is shown in Figure 1. One goal of using Ansible-based automation is to configure all sniffers simultaneously to guarantee that all nodes receive the same configuration, in addition to facilitating the manipulation of each device to be configured.
-
-<center>
-<figure>
-  <img src="../figures/mitik_topology.png" width="70%" height="70%" alt="mitik_topology"/>
-  <figcaption>Figure 1. Topology of Mitik project.</figcaption>
-</figure>
-</center>
-
-The sniffers' deployment require two roles to be developed. The first environment has been created to perform the installation and configuration tasks required on the hardware and the O.S.; the second environment executes the tasks necessary to start the sniffer according to the required parameters, in addition to synchronizing the data with the sniffer manager (Mitik laptop) and the Mitik server. Figure 3 shows the scenario to be automated by the Ansible management tool.
-
-<center>
-<figure>
-  <img src="../figures/ansible_implementation.png" width="70%" height="70%" alt="ansible_implementation"/>
-  <figcaption>Figure 3. Automating super-sniffers deployment.</figcaption>
-</figure>
-</center>
-
-## **Role 1. Hardware and software requirements**
-
-A modified version of Raspian has been provided by [1], as part of the experiments evaluating the performance of low-level libraries to capture network traffic in the sniffer. However, it is necessary to carry out additional configurations in the sniffer to add new functionalities on it.
-
-## **Sniffer manager**
-
-A sniffer manager is defined in a Mitik laptop (Macbook Pro). All the instructions executed in the sniffers are defined in the sniffer manager. To establish communication with the sniffers, an inventory with specific parameters is defined. Each sniffer is assigned a static IP. Besides that, sniffers are organized in groups (super-sniffers). _inventory_ shows the definition for each sniffer. Four groups (super-sniffers) are defined (ss1 to ss4), and each one contains five sniffers (sniffer#-ss#).
-
-In addition to the inventory, the sniffer manager sends all the instructions and configurations contained in the playbooks to be executed in each sniffer. 
-
-### **Authentication**
-
-SSH key-based is used as authentication method between the sniffer manager and the sniffers. It is indispensable for the secure exchange information and data between the entities (sniffer manager and sniffers), besides of the execution of specific functions that requires SSH authentication. To enable the SSH Key-based authentication setup between the sniffer manager and the sniffers, _playbook_SSH_Keygen_ generates the public key of each sniffer, and also copy their SSH public keys to the sniffer manager.
-
-### **Sniffer Identification**
-
-Since each sniffer uses the O.S. from [1], _playbook_hostname_ and _playbook_hosts_ to redefine the hostname and local DNS of each sniffer based on the _inventory_ file and the static IP defined there.
-
-### **GPS Synchronization**
-
-Each step described in [README](../docs/Installation%20manual.md) is executed in _playboork_GPS_sync_.
-
-### **Wireless Interfaces**
-
-To avoid randomness in the network interface names, the **Predictable network interface names** is disabled, and new udev rules are defined for assigning static interface names for each USB port. 
-```
-#
-# +---------------+
-# | wifi1 | wifi3 |
-# +-------+-------+
-# | wifi2 | wifi4 |
-# +---------------+ (RPI USB ports distribution)
-#
-# | wifi0 | (onboard wifi)
-#
-ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="sdio", ATTR{address}=="<MAC address onboard antenna>", KERNELS=="brcmfmac", NAME="wifi0"
-ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb",  KERNELS=="1-1.3",       NAME="wifi1"
-ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb",  KERNELS=="1-1.4",       NAME="wifi2"
-ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb",  KERNELS=="1-1.1",       NAME="wifi3"
-ACTION=="add", SUBSYSTEM=="net", SUBSYSTEMS=="usb",  KERNELS=="1-1.2",       NAME="wifi4"
-```
-
-It is also defined a wireless network to connect each sniffer to the remote server through wifi0. These parameters are defined in _playbook_NIC_config_. It is worth noting that all wireless interfaces used to sniff must be connected in the same USB port for all sniffers.
-
-## **Role 2. Sniffer parameters**
-
-Unlike the single execution tasks of role 1, the tasks of role 2 can be executed multiple times, as long as they correspond to execution variables of the sniffer script. It is necessary to enter the online parameters to run the sniffer described in [1]. Host variables are defined in _playbook_scapy-sniffer_. Also, a timeout to stop sniffer execution has been added. By last, a job scheduling utility has been added to ensure that network time protocol set by Chrony is up to date for all sniffers. 
-
-To start the sniffers, following parameters must be defined:
-
-- Hour to start the experiment,
-- Minutes to start the experiment,
-- Runtime duration in seconds,
-- Wireless interface (by default, wifi1),
-- Packet capture filter (by default, probe-req, probe-resp, beacon),
-- Channel (by default, system),
-- Hash funtion (by default, MD5),
-- Hash pattern (by default, 15),
-- Folder destination.
-
-The capture filename structure produced by sniffers will have the next format: packet_capture_{sniffer_i-super-sniffer_id}-ts-{timestamp}-ch{channel}-gps{lat/lon}.pcap
-
-On the other hand, each single capture file from the sniffers is sent via SSH connection to the Mitik laptop or Mitik server to be analyzed in the **Trace handling engine** and the **Trace production engine**. The _playbook_data_transfer_ contains the instructions to send the data to the Mitik laptop or Mitik server. 
-
-# ------------------ **TODO** --------------------
-
-Tasks:
-
-- [x] UPLOAD FUNCTIONAL PLAYBOOKS OF THE FIRST TESTBED
-- [x] SPECIFY FEATURES OF EACH PLAYBOOK
-- [x] ORGANIZE FEATURES IN PLAYBOOKS BY TASK TYPE
-- [ ] CREATE MAIN.YML TO EXECUTE ALL THE PLAYBOOKS
-
-## **References**
-
-[1] Fernando Dias de Mello Silva, Abhishek Kumar Mishra, Aline Carneiro Viana, Nadjib Achir, Anne Fladenmuller, and Lu ́ıs Henrique M. K. Costa. Performance analysis of a privacy-preserving frame sniffer on a raspberry pi. In 6th Cyber Security in Networking Conference (CSNet), pages 1–7, October 2022.