-The \gls{MTASK} system is a proof-of-concept system, though fully functioning, for integrating \gls{IOT} edge devices in \gls{TOP}.
-In conjunction with \gls{ITASK}, it is possible to program all layers of the \gls{IOT} from a single declarative specification.
-The \gls{ITASK} system is used to program the top layers of an \gls{IOT} system, providing the server and the web \gls{UI}.
-Then, \gls{MTASK} can be used to integrate edge devices.
-Tasks for edge devices are written in the \gls{MTASK} \gls{DSL} and can be integrated in \gls{ITASK} using only a few functions.
-\todo{extend}
-
-Deep embedding.
+Traditionally, \gls{IOT} has been programmed using layered, or tiered, architectures.
+Every layer has its own software and hardware characteristics, resulting in semantic friction.
+\Gls{TOP} is a declarative programming paradigm designed to describe multi-tiered interactive systems.
+However, it is not straightforward to run \gls{TOP} systems on resource-constrained devices such as edge devices.
+
+The \gls{MTASK} system bridges this gap by providing a \gls{TOP} programming language for edge devices.
+It is a full-fledged \gls{TOP} language hosted in a tiny \gls{FP} language.
+Besides the usual \gls{FP} constructs, it contains basic tasks, task combinators, support for sensors and actuators, and interrupts.
+It integrates seamlessly in \gls{ITASK}, a \gls{TOP} system for interactive web applications.
+Hence, all layers of an \gls{IOT} system can be programmed from a single declarative specification.
+In \gls{ITASK}, abstraction are available for the gritty details of interactive web applications such as program distribution, web applications, data storage, and user management.
+The engine of \gls{MTASK} abstracts away of all technicalities specific to edge devices such as communication, abstractions for sensors and actuators, interrupts and (multi) task scheduling.
+
+Any device equipped with the \gls{MTASK} \gls{RTS} can be used in the system and dynamically receive tasks for execution.
+This domain-specific \gls{OS} only needs to be programmed once, hence saving precious write cycles on the program memory.
+The \gls{MTASK} devices are connected to the \gls{ITASK} system at run time using a single function that takes care of all the communication and error handling.
+Once connected to a device, tasks written in the \gls{MTASK} \gls{DSL} can be lifted to \gls{ITASK} tasks.
+The tasks are specified and compiled at run time, i.e.\ \gls{CLEAN} can be used as a macro language for constructing \gls{MTASK} tasks, tailor making them for the current work requirements.
+When lifted, other tasks in the system can interact with the task through the usual means.
+Furthermore, \gls{ITASK} \glspl{SDS} can be \emph{lowered} to \gls{MTASK} tasks as well, allowing for bidirectional automatic data sharing between \gls{MTASK} tasks and the \gls{ITASK} system irrespective of task relations.
+\todo{Uit\-brei\-den?}