controlled by the \gls{Firmata}-protocol\footnote{``firmata/protocol:
Documentation of the Firmata protocol.''
(\url{https://github.com/firmata/protocol}). [Accessed: 23-May-2017].}. This
-protocol is designed to expose the peripherals such as sensors to the server.
+protocol is designed to expose the peripherals such as sensors to a server.
This allows very fine grained control but with the cost of excessive
-communication overhead since no code is executed on the device, only the
+communication overhead since no code is executed on the device itself, only the
peripherals are queried. A \gls{Haskell} implementation of the protocol is
also available\footnote{``hArduino by LeventErkok.'' (\url{%
-https://leventerkok.github.io/hArduino}). [Accessed: 23-May-2017].}.
+https://leventerkok.github.io/hArduino}). [Accessed: 23-May-2017].}. The
+hardware requirements for running a \gls{Firmata} client are very low. However,
+the communication requirements are high and therefore it is not suitable for
+\gls{IoT} applications that operate through specialized \gls{IoT} networks
+which often have low bandwidth and low power properties.
\Gls{Clean} has a history of interpretation and there is a lot of research
happening on the intermediate language \gls{SAPL}. \Gls{SAPL} is a purely