diff --git a/CMakeLists.txt b/CMakeLists.txt
index d486f68134d8ca80e527ffdb1e432d53276265b6..4bb834f10457b65164b4f21a46177664e0cc1a45 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -162,8 +162,8 @@ catkin_install_python(PROGRAMS
    nodes/visualiser
    scripts/play_animation.py
    scripts/reset_display.py
-   scripts/build_emotion.py
-   scripts/build_state_cycle.py
+   scripts/emotion.py
+   scripts/abstract.py
    scripts/write.py
    DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
 )
diff --git a/scripts/build_state_cycle.py b/scripts/abstract.py
similarity index 54%
rename from scripts/build_state_cycle.py
rename to scripts/abstract.py
index c932bf06f528ca2a816b4494ec77b89f572c4903..550b6f4f4108b5b1bdf2edbfd6f3c9bf5fd6804b 100755
--- a/scripts/build_state_cycle.py
+++ b/scripts/abstract.py
@@ -1,9 +1,13 @@
 #!/usr/bin/env python
 
 import argparse
+import time
+
 
 from visualising.expression.tool import Tool
+from visualising.expression.abstract import Abstract
 from visualising.communication.arduino import Arduino
+from visualising.communication.illustration.animation import Animation
 from visualising.communication.channel.connection import Connection
 
 parser = argparse.ArgumentParser(description="script to play an animation")
@@ -14,13 +18,19 @@ args = vars(parser.parse_args())
 
 port = args["port"]
 baud = args["baud"]
-time = args["time"]
+delay = args["time"]
 
 color = [10, 10, 10]
 
 arduino = Arduino(Connection(port, baud))
 
-states = [0.4, 1, 0.2, 0.3, 0.9, 0.7]
-ensemble = Tool.build_state_cycle(states)
+states = [0, 1.0, 0.10, 0.15, 0.20, 0.85, 0.30, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.65,
+          0.70, 0.75, 0.80, 0.25, 0.90, 0.05, 0.95]
+text = ["A", "CPU", "A", "A", "A", "ARM", "A", "A", "A", "A", "A", "A", "A", "A",
+        "A", "A", "A", "A", "RAM", "A", "CAMERA"]
+ensemble = Abstract.cycle(states)
+
+time.sleep(10)
 
-arduino.stream_animation(Tool.highlight(ensemble, states, 4))
+arduino.stream_animations(Abstract.highlight(ensemble, states, text, 4))
+# arduino.stream_animation(Animation([ensemble], 50, 2))
diff --git a/scripts/build_emotion.py b/scripts/emotion.py
similarity index 100%
rename from scripts/build_emotion.py
rename to scripts/emotion.py
diff --git a/scripts/play_animation.py b/scripts/play_animation.py
index 0542a88ba80b3f7fc4c81b0e9556735ab9b04fe2..fffbd223678ec980152aec71bff2963e03fca51d 100755
--- a/scripts/play_animation.py
+++ b/scripts/play_animation.py
@@ -21,6 +21,6 @@ time = args["time"]
 iter = args["iterations"]
 
 arduino = Arduino(Connection(port, baud))
-animation = Tool.create_animation(file, time, iter)
+animation = Tool.create_animation(file, "alphabet", time, iter)
 
 arduino.stream_animation(animation)
diff --git a/src/visualising/communication/arduino.py b/src/visualising/communication/arduino.py
index c79a4d38c04665996551c440dcc276067e99f043..fecbec8c8d2e1c08bb3a701f0524c353eb99bbea 100755
--- a/src/visualising/communication/arduino.py
+++ b/src/visualising/communication/arduino.py
@@ -90,3 +90,7 @@ class Arduino:
         for _ in range(animation.num_iter):
             for ensemble in animation.ensembles:
                 self.play_animation(Animation([ensemble], animation.ensemble_time, 1))
+
+    def stream_animations(self, animations):
+        for animation in animations:
+            self.stream_animation(animation)
diff --git a/src/visualising/communication/channel/connection.py b/src/visualising/communication/channel/connection.py
index c6fb34c73c6a2a83c62442141deace33a15ecbe8..332fda5bc3c90084edc841f6c9d7aa0ec3dc5303 100755
--- a/src/visualising/communication/channel/connection.py
+++ b/src/visualising/communication/channel/connection.py
@@ -3,10 +3,7 @@
 import time
 import serial
 
-from visualising.communication.channel.message.message import Message
 from visualising.communication.channel.message.response import Response
-from visualising.communication.channel.message.msg_frame import MsgFrame
-from visualising.communication.channel.message.msg_instr import MsgInstr
 
 
 class ArduinoException(Exception):
@@ -27,9 +24,6 @@ class Connection:
 
     # Send a message to the Arduino.
     def send_msg(self, msg):
-        if not isinstance(msg, Message):
-            raise TypeError("The parameter msg must be an object of the Message class!")
-
         for byte in msg.export_message():
             self.connection.write(byte)
 
@@ -54,12 +48,10 @@ class Connection:
     # specified. In case any response wasn't even once one of the
     # expected responses raise an exception.
     def confirm_msg(self, msg, expectations, resends):
-        if not isinstance(msg, Message):
-            raise TypeError("The parameter msg must be an object of the Message class!")
-        if not isinstance(expectations, list) or not all(isinstance(expectation, Response) for expectation in
-                                                         expectations):
-            raise TypeError("The parameter responses must be a list of objects of the Response class!")
-        if not isinstance(resends, int) or not resends > 0:
+        if not len(expectations) > 0:
+            raise ValueError("The parameter expectations must be a lister with objects of the class Response, "
+                             "the length of which must be greater than 1!")
+        if not resends > 0:
             raise ValueError("The parameter resends must be an integer greater 0!")
 
         def evaluate():
diff --git a/src/visualising/communication/channel/message/msg_frame.py b/src/visualising/communication/channel/message/msg_frame.py
index 6403697dcd5342e7f6c227f745ef13ff2158a668..0a0ebe3fa86ecdfe8f6397236201677124388bcf 100644
--- a/src/visualising/communication/channel/message/msg_frame.py
+++ b/src/visualising/communication/channel/message/msg_frame.py
@@ -1,29 +1,18 @@
 #!/usr/bin/env python
 
 from visualising.communication.channel.message.message import Message
-from visualising.communication.illustration.frame import Frame
 
 
 class MsgFrame(Message):
     def __init__(self, frame):
-        self._frame = frame
-
-    @property
-    def frame(self):
-        return self._frame
-
-    @frame.setter
-    def frame(self, frame):
-        if not isinstance(frame, Frame):
-            raise TypeError("The parameter frame must be an object of the Frame class!")
-        self._frame = frame
+        self.frame = frame
 
     # Creates a 50-bit frame message. The first and last bit are intended for authentication
     # as a frame message. The remaining 48 bits store exactly one frame.
     def export_message(self):
         message = [bytes('{', 'ascii')]
 
-        for pixel in self._frame.pixels:
+        for pixel in self.frame.pixels:
             r = pixel.color.r
             g = pixel.color.g
             b = pixel.color.b
diff --git a/src/visualising/communication/channel/message/msg_instr.py b/src/visualising/communication/channel/message/msg_instr.py
index 9b927edae79ec27fa170c756a9205063990eab50..495e2f9a72d31541c855052f437ef29ff90269f3 100644
--- a/src/visualising/communication/channel/message/msg_instr.py
+++ b/src/visualising/communication/channel/message/msg_instr.py
@@ -1,13 +1,12 @@
 #!/usr/bin/env python
 
 from visualising.communication.channel.message.message import Message
-from visualising.communication.illustration.animation import Animation
 
 
 class MsgInstr(Message):
     def __init__(self, instr, animation=None):
         self._instr = instr
-        self._animation = animation
+        self.animation = animation
 
     @property
     def instr(self):
@@ -19,33 +18,23 @@ class MsgInstr(Message):
             raise ValueError("Unknown instruction!")
         self._instr = instr
 
-    @property
-    def animation(self):
-        return self._animation
-
-    @animation.setter
-    def animation(self, animation):
-        if not isinstance(animation, Animation):
-            raise TypeError("The parameter animation must be an object of the Animation class!")
-        self._animation = animation
-
     # Creates a 50-bit instruction message. Since only 7 bits at most are required for the
     # actual message, most of the message consists only of zeros. The first and last bit
     # are intended for authentication as an instruction message.
     def export_message(self):
         message = [bytes('[', 'ascii'), bytes(self._instr, 'ascii')]
 
-        if self._animation is not None:
-            num_frames = len(self._animation.ensembles) * 2
+        if self.animation is not None:
+            num_frames = len(self.animation.ensembles) * 2
             message.append(num_frames.to_bytes(1, byteorder='big'))
 
-            ensemble_time_bytes = self._animation.ensemble_time.to_bytes(4, byteorder='big')
+            ensemble_time_bytes = self.animation.ensemble_time.to_bytes(4, byteorder='big')
             message.append((ensemble_time_bytes[0]).to_bytes(1, byteorder='big'))
             message.append((ensemble_time_bytes[1]).to_bytes(1, byteorder='big'))
             message.append((ensemble_time_bytes[2]).to_bytes(1, byteorder='big'))
             message.append((ensemble_time_bytes[3]).to_bytes(1, byteorder='big'))
 
-            message.append(self._animation.num_iter.to_bytes(1, byteorder='big'))
+            message.append(self.animation.num_iter.to_bytes(1, byteorder='big'))
 
             for _ in range(41):
                 message.append((0).to_bytes(1, byteorder='big'))
diff --git a/src/visualising/communication/channel/message/response.py b/src/visualising/communication/channel/message/response.py
index 30c439ae5284fc14276da13ba2f3f78154dff605..78aaeb9310195b262137bb681db73ff1e253832a 100644
--- a/src/visualising/communication/channel/message/response.py
+++ b/src/visualising/communication/channel/message/response.py
@@ -4,17 +4,7 @@ class Response:
     # Generates an Arduino message, which is composed of a message byte from the Arduino
     # and a translation of the message byte.
     def __init__(self, byte):
-        self._byte = byte
-
-    @property
-    def byte(self):
-        return self._byte
-
-    @byte.setter
-    def byte(self, byte):
-        if not isinstance(byte, bytes):
-            raise TypeError("The parameter byte must be an object of the byte class!")
-        self._byte = byte
+        self.byte = byte
 
     def translate(self):
         translation = {
@@ -40,11 +30,9 @@ class Response:
         }
 
         try:
-            return translation[int.from_bytes(self._byte, byteorder='big')]
+            return translation[int.from_bytes(self.byte, byteorder='big')]
         except KeyError:
             return "Unknown response!"
 
     def compare(self, response):
-        if not isinstance(response, Response):
-            raise TypeError("The parameter response must be an object of the Response class!")
-        return bytes(self._byte) == bytes(response.byte)
+        return bytes(self.byte) == bytes(response.byte)
diff --git a/src/visualising/communication/illustration/animation.py b/src/visualising/communication/illustration/animation.py
index e622d90fa7902d30d10e75a8b0bced30a0a82407..3ebf2809a2c279f8f5fe6b9236a07bde67b041fd 100755
--- a/src/visualising/communication/illustration/animation.py
+++ b/src/visualising/communication/illustration/animation.py
@@ -1,33 +1,20 @@
 #!/usr/bin/env python
 
-from visualising.communication.illustration.ensemble import Ensemble
-
-
 class Animation:
+    # The ensemble time is given in milliseconds.
     def __init__(self, ensembles, ensemble_time=0, num_iter=1):
-        self._ensembles = ensembles
+        self.ensembles = ensembles
         self._ensemble_time = ensemble_time
         self._num_iter = num_iter
 
-    @property
-    def ensembles(self):
-        return self._ensembles
-
-    @ensembles.setter
-    def ensembles(self, ensembles):
-        if not isinstance(ensembles, Ensemble):
-            raise TypeError("The parameter ensembles must be an object of the Ensemble class!")
-        self._ensembles = ensembles
-
     @property
     def ensemble_time(self):
         return self._ensemble_time
 
     @ensemble_time.setter
     def ensemble_time(self, ensemble_time):
-        if not isinstance(ensemble_time, int) or not 0 <= ensemble_time <= 4294967295:
+        if not 0 <= ensemble_time <= 4294967295:
             raise ValueError("The parameter ensemble_time  must be an integer between 0 an 4294967295!")
-        # The ensemble time is given in milliseconds.
         self._ensemble_time = ensemble_time
 
     @property
@@ -36,6 +23,6 @@ class Animation:
 
     @num_iter.setter
     def num_iter(self, num_iter):
-        if not isinstance(num_iter, int) or not 1 <= num_iter <= 255:
+        if not 1 <= num_iter <= 255:
             raise ValueError("The parameter num_iter must be an integer between 1 an 255!")
         self._num_iter = num_iter
diff --git a/src/visualising/communication/illustration/color/rgb.py b/src/visualising/communication/illustration/color/rgb.py
index c874cd13f7822c3c0c8b84ea260176443b49e059..08cab69f159900e3bbb0759374c467d0e578772f 100644
--- a/src/visualising/communication/illustration/color/rgb.py
+++ b/src/visualising/communication/illustration/color/rgb.py
@@ -15,7 +15,7 @@ class RGB(Color):
 
     @r.setter
     def r(self, r):
-        if not isinstance(r, int) or not 0 <= r <= 255:
+        if not 0 <= r <= 255:
             raise ValueError("The parameter r must be an integer between 0 and 255!")
         self._r = r
 
@@ -25,7 +25,7 @@ class RGB(Color):
 
     @g.setter
     def g(self, g):
-        if not isinstance(g, int) or not 0 <= g <= 255:
+        if not 0 <= g <= 255:
             raise ValueError("The parameter g must be an integer between 0 and 255!")
         self._g = g
 
@@ -35,7 +35,7 @@ class RGB(Color):
 
     @b.setter
     def b(self, b):
-        if not isinstance(b, int) or not 0 <= b <= 255:
+        if not 0 <= b <= 255:
             raise ValueError("The parameter b must be an integer between 0 and 255!")
         self._b = b
 
@@ -44,4 +44,4 @@ class RGB(Color):
         return self._r + self._g + self._b != 0
 
     def export_color(self):
-        return [self._r, self._g, self._b]
\ No newline at end of file
+        return [self._r, self._g, self._b]
diff --git a/src/visualising/communication/illustration/ensemble.py b/src/visualising/communication/illustration/ensemble.py
index 3e175715e32e15b9012711fef2a497192c3b351c..69f3c53a6d70a467f1ee03ff5b27bbbc8cdda6a2 100644
--- a/src/visualising/communication/illustration/ensemble.py
+++ b/src/visualising/communication/illustration/ensemble.py
@@ -1,29 +1,14 @@
 #!/usr/bin/env python
 
-from visualising.communication.illustration.frame import Frame
-
-
 class Ensemble:
     def __init__(self, l_frame, r_frame):
-        self._l_frame = l_frame
-        self._r_frame = r_frame
-
-    @property
-    def l_frame(self):
-        return self._l_frame
-
-    @l_frame.setter
-    def l_frame(self, l_frame):
-        if not isinstance(l_frame, Frame):
-            raise TypeError("The parameter left must be an object of the Frame class!")
-        self._l_frame = l_frame
-
-    @property
-    def r_frame(self):
-        return self._r_frame
-
-    @r_frame.setter
-    def r_frame(self, r_frame):
-        if not isinstance(r_frame, Frame):
-            raise TypeError("The parameter right must be an object of the Frame class!")
-        self._r_frame = r_frame
+        self.l_frame = l_frame
+        self.r_frame = r_frame
+
+    def replace_pixel(self, index, pixel):
+        if not 0 <= index <= 31:
+            raise ValueError("The parameter index must be an integer between 0 and 31!")
+        if index < 16:
+            self.l_frame.replace_pixel(index, pixel)
+        else:
+            self.r_frame.replace_pixel(index - 16, pixel)
diff --git a/src/visualising/communication/illustration/frame.py b/src/visualising/communication/illustration/frame.py
index bab4750fdef322706e370c918f8f8408736d280a..315ea427daf34fd1a02ea612d6c79921746509f0 100644
--- a/src/visualising/communication/illustration/frame.py
+++ b/src/visualising/communication/illustration/frame.py
@@ -1,9 +1,5 @@
 #!/usr/bin/env python
 
-from visualising.communication.illustration.pixel import Pixel
-from visualising.communication.illustration.color.color import Color
-
-
 class Frame:
     def __init__(self, pixels):
         self._pixels = pixels
@@ -14,18 +10,16 @@ class Frame:
 
     @pixels.setter
     def pixels(self, pixels):
-        if not isinstance(pixels, list) or not all(isinstance(pixel, Pixel) for pixel in pixels) or len(pixels) != 16:
+        if len(pixels) != 16:
             raise ValueError("The parameter pixels must be a list of exactly 16 objects of the Pixel class!")
         self._pixels = pixels
 
     def illuminated(self, index):
-        if not isinstance(index, int) or not 0 <= index <= 15:
+        if not 0 <= index <= 15:
             raise ValueError("The parameter index must be an integer between 0 and 15!")
         return self._pixels[index].color.illuminated
 
     def replace_pixel(self, index, pixel):
-        if not isinstance(index, int) or not 0 <= index <= 15:
+        if not 0 <= index <= 15:
             raise ValueError("The parameter index must be an integer between 0 and 15!")
-        if not isinstance(pixel, Pixel):
-            raise TypeError("The parameter pixel must be an object of the Pixel class!")
         self._pixels[index] = pixel
diff --git a/src/visualising/communication/illustration/pixel.py b/src/visualising/communication/illustration/pixel.py
index 2e2c97562405eaad1eca9299bee7826f11a15fde..cc811dbc1f8d6e5b01dbfee9097968a612830dce 100644
--- a/src/visualising/communication/illustration/pixel.py
+++ b/src/visualising/communication/illustration/pixel.py
@@ -1,19 +1,5 @@
 #!/usr/bin/env python
 
-from visualising.communication.illustration.color.color import Color
-
-
 class Pixel:
     def __init__(self, color):
-        self._color = color
-
-    @property
-    def color(self):
-        return self._color
-
-    @color.setter
-    def color(self, color):
-        if not isinstance(color, Color):
-            raise TypeError("The parameter color must be an object of the Color class!")
-        self._color = color
-
+        self.color = color
diff --git a/src/visualising/expression/abstract.py b/src/visualising/expression/abstract.py
index a352fa14831890188a97c59db2c6e9ae3790cf9d..9aa6fb28f8e8656670caa1f23e7498cc2e6ea962 100644
--- a/src/visualising/expression/abstract.py
+++ b/src/visualising/expression/abstract.py
@@ -3,12 +3,93 @@ import rospy
 import numpy as np
 
 from visualising.expression.tool import Tool
+from visualising.expression.expression import Expression
+from visualising.communication.illustration.animation import Animation
+from visualising.communication.illustration.color.rgb import RGB
 
-class Abstract:
+
+class Abstract(Expression):
     def __init__(self, arduino):
         self.arduino = arduino
         self.playback_start = 0
 
     def react(self, state):
-        if len(state[1]) > 16:
-            rospy.logwarn("Only displaying the first 16 metric aggregations!")
+        if len(state[1]) > 32:
+            rospy.logwarn("Only displaying the first 32 metric aggregations!")
+            state = state[:32]
+
+    @staticmethod
+    def cycle(state_vector):
+        ensemble = Tool.create_empty_ensemble()
+        index = 0
+        for state in state_vector:
+            color = Tool.state_to_color(state, RGB(0, 50, 0), RGB(50, 0, 0))
+            ensemble = Tool.set_pixel_color(ensemble, index, color)
+            index = index + 1
+
+        return ensemble
+
+    @staticmethod
+    def highlight(cycle, states, text, number):
+        number = min(len(states), number)
+        highlight = sorted(zip(states, range(len(states))), reverse=True)[:number]
+
+        cycle_animation = Animation([cycle], 5000, 1)
+
+        animations = [cycle_animation]
+
+        for tuple in highlight:
+            ensembles = []
+            highlight = Tool.create_empty_ensemble()
+            ring = ""
+            highlight_pixel = None
+            color = None
+            for i in range(32):
+                if tuple[1] != i:
+                    highlight = Tool.set_pixel_color(highlight, i, RGB(0, 0, 0))
+                else:
+                    highlight_pixel = i
+                    if i < 16:
+                        ring = "l"
+                        color = cycle.l_frame.pixels[i].color
+                    else:
+                        ring = "r"
+                        color = cycle.r_frame.pixels[i % 16].color
+
+                    highlight = Tool.set_pixel_color(highlight, i, color)
+
+            ensembles.append(highlight)
+            ensembles = ensembles + Abstract.write(text[highlight_pixel], ring, highlight_pixel, color)
+            animations.append(Animation(ensembles, 1000, 1))
+            animations.append(cycle_animation)
+
+        animations.append(Animation([Tool.create_empty_ensemble()], 1000, 1))
+
+        return animations
+
+    @staticmethod
+    def write(text, ring, highlight=None, color=None):
+        if not isinstance(text, str) or not text.isalpha():
+            raise ValueError("The parameter text must be a string that only contains alphabetic characters!")
+
+        text = text.upper()
+
+        ensembles = []
+        for char in text:
+            if ring == "l":
+                file = "l_" + char + ".txt"
+            elif ring == "r":
+                file = "r_" + char + ".txt"
+            else:
+                raise ValueError("The parameter index must be a string that is either l or r!")
+
+            letter = Tool.create_ensembles(file, "alphabet")
+            if highlight is not None:
+                letter = [Tool.set_pixel_color(letter[0], highlight, color)]
+            ensembles = ensembles + letter
+            if highlight is not None:
+                ensembles.append(Tool.set_pixel_color(Tool.create_empty_ensemble(), highlight, color))
+            else:
+                ensembles.append(Tool.create_empty_ensemble())
+
+        return ensembles
diff --git a/src/visualising/expression/library/alphabet/A.txt b/src/visualising/expression/library/alphabet/l_A.txt
similarity index 70%
rename from src/visualising/expression/library/alphabet/A.txt
rename to src/visualising/expression/library/alphabet/l_A.txt
index 23b7df9b0aa82254ef9c3e67dfaa292a236bed7e..fdab9361363b9e2bc7985bed66b4373a6b714036 100644
--- a/src/visualising/expression/library/alphabet/A.txt
+++ b/src/visualising/expression/library/alphabet/l_A.txt
@@ -1,2 +1,2 @@
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10
+10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10
diff --git a/src/visualising/expression/library/alphabet/B.txt b/src/visualising/expression/library/alphabet/l_B.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/B.txt
rename to src/visualising/expression/library/alphabet/l_B.txt
diff --git a/src/visualising/expression/library/alphabet/C.txt b/src/visualising/expression/library/alphabet/l_C.txt
similarity index 68%
rename from src/visualising/expression/library/alphabet/C.txt
rename to src/visualising/expression/library/alphabet/l_C.txt
index ee479a4abaffe885abd64b97b99ff0c131babc21..fa8f35a0389263a3f071aa072f6e1e935045f5b8 100644
--- a/src/visualising/expression/library/alphabet/C.txt
+++ b/src/visualising/expression/library/alphabet/l_C.txt
@@ -1,2 +1,2 @@
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10
\ No newline at end of file
+10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,10,10,10
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/D.txt b/src/visualising/expression/library/alphabet/l_D.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/D.txt
rename to src/visualising/expression/library/alphabet/l_D.txt
diff --git a/src/visualising/expression/library/alphabet/E.txt b/src/visualising/expression/library/alphabet/l_E.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/E.txt
rename to src/visualising/expression/library/alphabet/l_E.txt
diff --git a/src/visualising/expression/library/alphabet/G.txt b/src/visualising/expression/library/alphabet/l_G.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/G.txt
rename to src/visualising/expression/library/alphabet/l_G.txt
diff --git a/src/visualising/expression/library/alphabet/H.txt b/src/visualising/expression/library/alphabet/l_H.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/H.txt
rename to src/visualising/expression/library/alphabet/l_H.txt
diff --git a/src/visualising/expression/library/alphabet/I.txt b/src/visualising/expression/library/alphabet/l_I.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/I.txt
rename to src/visualising/expression/library/alphabet/l_I.txt
diff --git a/src/visualising/expression/library/alphabet/J.txt b/src/visualising/expression/library/alphabet/l_J.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/J.txt
rename to src/visualising/expression/library/alphabet/l_J.txt
diff --git a/src/visualising/expression/library/alphabet/L.txt b/src/visualising/expression/library/alphabet/l_L.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/L.txt
rename to src/visualising/expression/library/alphabet/l_L.txt
diff --git a/src/visualising/expression/library/alphabet/M.txt b/src/visualising/expression/library/alphabet/l_M.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/M.txt
rename to src/visualising/expression/library/alphabet/l_M.txt
diff --git a/src/visualising/expression/library/alphabet/N.txt b/src/visualising/expression/library/alphabet/l_N.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/N.txt
rename to src/visualising/expression/library/alphabet/l_N.txt
diff --git a/src/visualising/expression/library/alphabet/O.txt b/src/visualising/expression/library/alphabet/l_O.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/O.txt
rename to src/visualising/expression/library/alphabet/l_O.txt
diff --git a/src/visualising/expression/library/alphabet/l_P.txt b/src/visualising/expression/library/alphabet/l_P.txt
new file mode 100644
index 0000000000000000000000000000000000000000..91ec9569a90c5aea866b0e8af782892068abf0e5
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/l_P.txt
@@ -0,0 +1,2 @@
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,10,10,10,10,10,10
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/R.txt b/src/visualising/expression/library/alphabet/l_R.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/R.txt
rename to src/visualising/expression/library/alphabet/l_R.txt
diff --git a/src/visualising/expression/library/alphabet/S.txt b/src/visualising/expression/library/alphabet/l_S.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/S.txt
rename to src/visualising/expression/library/alphabet/l_S.txt
diff --git a/src/visualising/expression/library/alphabet/T.txt b/src/visualising/expression/library/alphabet/l_T.txt
similarity index 100%
rename from src/visualising/expression/library/alphabet/T.txt
rename to src/visualising/expression/library/alphabet/l_T.txt
diff --git a/src/visualising/expression/library/alphabet/l_U.txt b/src/visualising/expression/library/alphabet/l_U.txt
new file mode 100644
index 0000000000000000000000000000000000000000..1388e68da1683f38db7308d3d4ae3fcf96357c93
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/l_U.txt
@@ -0,0 +1,2 @@
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_A.txt b/src/visualising/expression/library/alphabet/r_A.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f220779edff4a42d85b52f318f96c12a330647e5
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_A.txt
@@ -0,0 +1,2 @@
+10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_B.txt b/src/visualising/expression/library/alphabet/r_B.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a82ab07087aa7af824ba83ec47d53a845475bec9
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_B.txt
@@ -0,0 +1,2 @@
+10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,10,10,10,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_C.txt b/src/visualising/expression/library/alphabet/r_C.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f5d41bdb34405e2ca908f67b4ac0a0f6e071d459
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_C.txt
@@ -0,0 +1,2 @@
+10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_D.txt b/src/visualising/expression/library/alphabet/r_D.txt
new file mode 100644
index 0000000000000000000000000000000000000000..82b9c956c192f66117f23f4f7a82247521e499c7
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_D.txt
@@ -0,0 +1,2 @@
+10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_E.txt b/src/visualising/expression/library/alphabet/r_E.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c561035ae247e713e12350b8a86424b511cf93bd
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_E.txt
@@ -0,0 +1,2 @@
+10,0,0,10,0,0,10,0,0,10,0,0,10,0,0,10,0,0,10,0,0,10,0,0,10,0,0,10,0,0,0,0,0,0,0,0,10,10,10,10,0,0,10,0,0,10,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_G.txt b/src/visualising/expression/library/alphabet/r_G.txt
new file mode 100644
index 0000000000000000000000000000000000000000..972ec8a1795113e127aa7660d3f3feb7acdedb6b
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_G.txt
@@ -0,0 +1,2 @@
+10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,10,10,10,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_H.txt b/src/visualising/expression/library/alphabet/r_H.txt
new file mode 100644
index 0000000000000000000000000000000000000000..31e3acd2e11cfcd5a66754a6ee0c4d4c8f34c9d5
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_H.txt
@@ -0,0 +1,2 @@
+0,0,0,0,0,0,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,0,0,10,10,10,10,10,10,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_I.txt b/src/visualising/expression/library/alphabet/r_I.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a1400d28e11a966e402b02dda56fe6eea556f844
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_I.txt
@@ -0,0 +1,2 @@
+10,0,0,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,10,0,0,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_J.txt b/src/visualising/expression/library/alphabet/r_J.txt
new file mode 100644
index 0000000000000000000000000000000000000000..022044287f2cde4ce10b4658a772d58dc158493d
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_J.txt
@@ -0,0 +1,2 @@
+1,1,1,1,1,1,10,10,10,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,1,1,1
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_L.txt b/src/visualising/expression/library/alphabet/r_L.txt
new file mode 100644
index 0000000000000000000000000000000000000000..cbf17fe8ad266d501f939b4c6bc67fcf3de3f5f4
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_L.txt
@@ -0,0 +1,2 @@
+10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_M.txt b/src/visualising/expression/library/alphabet/r_M.txt
new file mode 100644
index 0000000000000000000000000000000000000000..09a6e66d1be75cc006da36c3d0724c9f1d3ce3e1
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_M.txt
@@ -0,0 +1,2 @@
+0,0,0,0,0,0,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_N.txt b/src/visualising/expression/library/alphabet/r_N.txt
new file mode 100644
index 0000000000000000000000000000000000000000..76b354c9071d0c2f8d0fb78b05562c36de490177
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_N.txt
@@ -0,0 +1,2 @@
+0,0,0,0,0,0,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,10,0,0,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_O.txt b/src/visualising/expression/library/alphabet/r_O.txt
new file mode 100644
index 0000000000000000000000000000000000000000..7a17d8bb8eed54e51a2e2f6724fefc4610686a76
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_O.txt
@@ -0,0 +1,2 @@
+10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_P.txt b/src/visualising/expression/library/alphabet/r_P.txt
new file mode 100644
index 0000000000000000000000000000000000000000..db065c2020feea5c971bd2c9fb64df6ac1d65264
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_P.txt
@@ -0,0 +1,2 @@
+10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,10,10,10,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_R.txt b/src/visualising/expression/library/alphabet/r_R.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4f5be09f8040eb813e20f15ca3c1cf27cf407bba
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_R.txt
@@ -0,0 +1,2 @@
+10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,10,0,0,10,10,10,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_S.txt b/src/visualising/expression/library/alphabet/r_S.txt
new file mode 100644
index 0000000000000000000000000000000000000000..57fd5310dbe3346625bade655581a20f8fc8bb51
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_S.txt
@@ -0,0 +1,2 @@
+10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0,0,0,10,10,10,10,10,10,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_T.txt b/src/visualising/expression/library/alphabet/r_T.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6f88750662e3807a6f96d6c34f6f00fdcf118e08
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_T.txt
@@ -0,0 +1,2 @@
+10,0,0,10,10,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,10,10,10,10,10
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/alphabet/r_U.txt b/src/visualising/expression/library/alphabet/r_U.txt
new file mode 100644
index 0000000000000000000000000000000000000000..35c20b398e5a8af36e1f1333e0e4b89c1c5a3417
--- /dev/null
+++ b/src/visualising/expression/library/alphabet/r_U.txt
@@ -0,0 +1,2 @@
+0,0,0,0,0,0,0,0,0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
\ No newline at end of file
diff --git a/src/visualising/expression/library/emotion/expression_happy.txt b/src/visualising/expression/library/emotion/expression_happy.txt
index 213cbe601d399f8a79167ae24c33e80fc7a78ff9..dd59d3129540ed86a5f9a09b072232b0f92b1a8b 100644
--- a/src/visualising/expression/library/emotion/expression_happy.txt
+++ b/src/visualising/expression/library/emotion/expression_happy.txt
@@ -1,2 +1,2 @@
-50,0,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,50
-50,0,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,50
+50,0,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,50,50,50,50,50,50,50,50,50,50
+50,0,0,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,50,50,50,50,50,50,50,50,50,50,50,50
diff --git a/src/visualising/expression/tool.py b/src/visualising/expression/tool.py
index de188c95da78b97170501c23542b97d84945b12d..284b29d5ed62a5ac3db00a56f100a247653d9aba 100644
--- a/src/visualising/expression/tool.py
+++ b/src/visualising/expression/tool.py
@@ -122,58 +122,3 @@ class Tool:
 
         return RGB(int(color[0]), int(color[1]), int(color[2]))
 
-    @staticmethod
-    def build_state_cycle(state_vector):
-        ensemble = Tool.create_empty_ensemble()
-        pixel = 0
-        for state in state_vector:
-            color = Tool.state_to_color(state, [0, 50, 0], [50, 0, 0])
-            ensemble = Tool.set_pixel_color(ensemble, pixel, color[0], color[1], color[2])
-            pixel = pixel + 1
-
-        return ensemble
-
-    @staticmethod
-    def highlight(ensemble, states, number):
-        number = min(len(states), number)
-        highlight = sorted(zip(states, range(len(states))), reverse=True)[:number]
-
-        ensembles = [ensemble]
-        for tuple in highlight:
-            empty = Tool.create_empty_ensemble()
-            for i in range(16):
-                if ensemble.l_frame.is_colored(i):
-
-                    r = ensemble.l_frame.pixels[i].r
-                    g = ensemble.l_frame.pixels[i].g
-                    b = ensemble.l_frame.pixels[i].b
-
-                    off = [0, 0, 0]
-
-                    if tuple[1] != i:
-                        empty = Tool.set_pixel_color(empty, i, off[0], off[1], off[2])
-                    else:
-                        empty = Tool.set_pixel_color(empty, i, r, g, b)
-
-            ensembles.append(empty)
-            ensembles = ensembles + Tool.write("HALLO")
-            ensembles.append(ensemble)
-
-        ensembles.append(Tool.create_empty_ensemble())
-
-        return Animation(ensembles, 1000, 1)
-
-    @staticmethod
-    def write(text):
-        if not text.isalpha():
-            raise ValueError("Text must contain only alphabetic characters!")
-
-        text = text.upper()
-
-        ensembles = []
-        for char in text:
-            file = char + ".txt"
-            ensembles = ensembles + Tool.create_ensembles(file)
-            ensembles.append(Tool.create_empty_ensemble())
-
-        return ensembles