+\mTask{}s are no regular tasks in the sense that they can be combined with task
+combinators. Moreover \mTask{}s can not communicate directly with each other or
+with the server. Indirect communication is possible through a special type of
+SDSs that lives solely within the mother task and the microcontroller.
+
+An \mTask{} controller is just another \iTasks{} task and can be instantiated.
+The controller task will manage the devices and keep track of the data
+structures.
+
+Devices can be added to the controller by giving a specification of the
+communication and some properties of the device. Not all devices are the same
+so a data structure containing properties will have to be devised.
+
+An \mTask{} can be added through the \CI{runmTask} function that from a given
+\mTask{} returns a \CI{Task Int}. The \CI{Int} denotes the unique identifier of
+the task that can later on be used to kill a task even when it is not finished.
+During initialization the task value is \CI{NoValue}. When the initialization
+is done and the task is loaded the value becomes an unstable \CI{Int} value
+that denotes the task identification. When the task is finished the value
+becomes stable and no interaction can be done with the type from then on.
+
+\todo{Dit wat hieronder staat omschrijven}
+