However, this requires a very specific adapter to be written for every device
and function. This forces a fixed logic in the device that is set at compile
time. Many small \gls{IoT} devices have limited processing power but are still
-powerfull enough for decision making. Recompiling the code for a small
+powerful enough for decision making. Recompiling the code for a small
\gls{IoT} device is expensive and therefore it is difficult to use a device
dynamically for multiple purposes. Oortgiese et al.\ lifted \gls{iTasks} from a
single server model to a distributed server architecture that is also runnable