-%Applying the concepts of \gls{LSOC} to \gls{IOT} systems can be done in two ways.
-%Firstly, edge devices can be seen as simple resources, thus accessed through the resource access layer.
-%The second view is that edge devices contain miniature \gls{LSOC} systems in itself as well.
-%In \gls{TOSD} the same can be applied.
-%The individual components in the miniature systems, the tasks, the \glspl{SDS}, are connected to the main system.
-%\t odo{Is deze \P\ dui\-de\-lijk genoeg of \"uberhaupt nodig?}
-
-\subsection{\texorpdfstring{\Gls{ITASK}}{ITask}}
-The concept of \gls{TOP} originated from the \gls{ITASK} framework, a declarative interactive systems language and \gls{TOP} engine for defining multi-user distributed web applications implemented as an \gls{EDSL} in the lazy pure \gls{FP} language \gls{CLEAN} \citep{plasmeijer_itasks:_2007,plasmeijer_task-oriented_2012}.
-From the structural properties of the data types, the entire user interface is automatically generated.
-Browsers are powering \gls{ITASK}'s perception layer.
-The framework is written using standard web techniques such as JavaScript, HTML, and CSS, \gls{ITASK} code running in the browser relies on an interpreter that operates on \gls{CLEAN}'s intermediate language \gls{ABC} \citep{staps_lazy_2019}.
-
-As an example, \cref{lst:enter_person,fig:enter_person} show the \gls{ITASK} code and the corresponding \gls{UI} for a simple task for entering information about a person and viewing the entered result after completion.
-From the data type definitions (\cref{lst:dt_fro,lst:dt_to}), using generic programming (\cref{lst:dt_derive}), the \glspl{UI} for the data types are automatically generated.
-Using task combinators (e.g.\ \cleaninline{>>!} at \cref{lst:task_comb}), the tasks can be combined in sequence.
-Only when the user enters a complete value in the web editor, then the continue button enables and the result can be viewed.
-Special combinators (e.g.\ \cleaninline{@>>} at \cref{lst:task_ui}) are used to tweak the \gls{UI} so that informative labels are displayed.
+\Cref{fig:tosd} differs from the presented \gls{IOT} architecture shown in \cref{fig:iot-layers} because they represent different concepts.
+The \gls{IOT} architecture is an execution architecture whereas \gls{TOSD} is a software development model.
+E.g.\ from a software development perspective, a task is a task, whether it is executed on a microcontroller, a server, or a client.
+Only when a task is executed, the location of the execution becomes important, but this is taken care of by the system.
+Some concepts from the \gls{TOSD} model can be mapped upon the \gls{IOT} architecture in two ways.
+Firstly, edge devices can be seen as simple resources, thus accessed through \glspl{SDS}.
+The second view is that edge devices contain miniature \gls{TOP} systems in itself.
+The individual components in the miniature systems, the tasks, the \glspl{SDS}, are, in the eventual execution, connected to the main system.
+
+\subsection{The iTask system}
+The concept of \gls{TOP} originated from the \gls{ITASK} framework, a declarative language and \gls{TOP} engine for defining interactive multi-user distributed web applications.
+The \gls{ITASK} system is implemented as an \gls{EDSL} in the programming language \gls{CLEAN}\footnote{\Cref{chp:clean_for_haskell_programmers} contains a guide for \gls{CLEAN} tailored to \gls{HASKELL} programmers.} \citep{plasmeijer_itasks:_2007,plasmeijer_task-oriented_2012}.
+It has been under development for over fifteen years and has proven itself through use in industry for some time now as well \citep{top_software_viia_2023}.
+From the structural properties of the data types and the current status of the work to be done, the entire \gls{UI} is automatically generated.
+Browsers are powering \gls{ITASK}'s presentation layer.
+The framework is built on top of standard web techniques such as JavaScript, HTML, and {CSS}.
+The browser runs the actual \gls{ITASK} code using an interpreter that operates on \gls{CLEAN}'s intermediate language \gls{ABC} \citep{staps_lazy_2019}.
+
+Tasks in \gls{ITASK} have either \emph{no value}, an \emph{unstable} or a \emph{stable} task value.
+For example, an editor for filling in a form initially has no value.
+Once the user entered a complete value, its value becomes an unstable value, it can still be changed or even reverted to no value by emptying the editor again.
+Only when for example a continue button is pressed, a task value becomes stable, fixing its value.
+The allowed task value transitions are shown in \cref{fig:taskvalue}.