Index: flowtimer/Schedule.py
===================================================================
--- flowtimer/Schedule.py	(revision 58e73155ae871e56a47a1d33c443c76a1c190aea)
+++ flowtimer/Schedule.py	(revision ab10343778b8c64c2eab4036117134a5cf9720e6)
@@ -17,5 +17,5 @@
         self.blocks = blocks
         self.current_block = blocks[0]
-        self.state = "initial"
+        self._state = "initial"
 
     @classmethod
@@ -89,20 +89,28 @@
         })
 
+    def state(self):
+        if self.is_completed():
+            return "completed"
+        return self._state
+
     def start(self):
-        self.state = "running"
+        self._state = "running"
         self.current_block.start()
 
     def pause(self):
-        self.state = "paused"
+        self._state = "paused"
 
-    def running(self):
-        return self.state == "running"
+    def is_initial(self):
+        return self._state == 'initial'
 
-    def paused(self):
-        return self.state == "paused"
+    def is_running(self):
+        return self._state == "running"
+
+    def is_paused(self):
+        return self._state == "paused"
 
     def abort(self):
         self.current_block.abort()
-        self.state = "aborted"
+        self._state = "aborted"
 
     def current_block_is_final(self):
@@ -110,16 +118,15 @@
         return index == (len(self.blocks) - 1)
 
-    def completed(self):
+    def is_completed(self):
         if (self.current_block.completed()) and (self.current_block_is_final()):
-            self.state = "completed"
             return True
         else:
             return False
 
-    def aborted(self):
-        return self.state == "aborted"
+    def is_aborted(self):
+        return self._state == "aborted"
 
-    def terminated(self):
-        return (self.aborted() or self.completed())
+    def is_terminated(self):
+        return (self.is_aborted() or self.is_completed())
 
     def advance_to_next_block(self):
@@ -155,9 +162,9 @@
 
     def tick(self, ticks):
-        if not self.completed():
+        if not self.is_completed():
             self.current_block.tick(ticks)
             if self.current_block.completed():
                 if self.current_block_is_final():
-                    self.state = "completed"
+                    self._state = "completed"
                 else:
                     self.skip()
Index: flowtimer/configs/colors.json
===================================================================
--- flowtimer/configs/colors.json	(revision 58e73155ae871e56a47a1d33c443c76a1c190aea)
+++ flowtimer/configs/colors.json	(revision ab10343778b8c64c2eab4036117134a5cf9720e6)
@@ -1,4 +1,10 @@
 {
     "color_list": [
+	{
+	    "title": "Completed",
+	    "widget": "red",
+	    "sequence_label": "red",
+	    "center_frame": "red"
+	},
 	{
 	    "title": "Huddle",
Index: flowtimer/main.py
===================================================================
--- flowtimer/main.py	(revision 58e73155ae871e56a47a1d33c443c76a1c190aea)
+++ flowtimer/main.py	(revision ab10343778b8c64c2eab4036117134a5cf9720e6)
@@ -18,5 +18,4 @@
         self.photo = ImageTk.PhotoImage(file=Path(__file__).parent /
                                         'resources' / 'flowtimer_startbg_new.png')
-        self.config_state = 'default'
         print("Config:", config_file)
         self.schedule = self.load_config(config_file)
@@ -24,5 +23,5 @@
         self.build_gui()
         if autostart:
-            self.start()
+            self.toggle_play_pause()
 
     def build_gui(self):
@@ -42,9 +41,10 @@
 
         self.label_headline = tk.Label(self.headline_frame,
-                                       text=("Hochintensive Intervallarbeit"),
+                                       text=(self.schedule.current_block.title),
                                        bg='white', fg='grey', font="serif 20")
         self.label_headline.pack(side='left', fill='both', expand=True)
 
-        self.label_config = tk.LabelFrame(self.headline_frame, text="config: ",
+        self.label_config = tk.LabelFrame(self.headline_frame,
+                                          text=f"config: {self.schedule.title}",
                                           bg='white', font="serif 12")
         self.label_config.pack(side='right', fill='both', expand=False,
@@ -85,4 +85,6 @@
         self.quit_button.pack(side='left', fill='both', ipady=20, expand=True)
 
+        self.parent.resizable(False, False)
+
     def ticks_left_in_phase(self):
         if self.schedule.current_block.is_sequence():
@@ -91,6 +93,6 @@
             return self.schedule.current_block.ticks_left
 
-    def color_for_phase(self, a_title):
-        return next((d for d in self.colors if d.get('title') == a_title), None)
+    def colors_for_phase(self, a_title):
+        return next((d for d in self.color_scheme if d.get('title') == a_title), None)
 
     def current_title(self):
@@ -115,32 +117,28 @@
             return f"{(self.ticks_left_in_phase() // 60)} min left in phase {self.current_title()}"
 
+    # FIXME: This logic looks like shit. Refactor it!!!
     def tick(self):
-        if not self.schedule.running():
+        current_process = self.after(1000, self.tick)
+        if self.schedule.is_terminated():
+            self.label_sequence.config(text=("\n" + "\nTime over !"),
+                                       bg=self.colors_for_phase("Completed").get('sequence_label'),
+                                       fg="white")
+            self.label_duration.config(text="", bg=self.colors_for_phase("Completed").get('duration_label'),
+                                       fg="white")
+            self.progressbar.pack_forget()
+            self.center_frame.configure(bg=self.colors_for_phase("Completed").get('center_frame'))
+            self.after_cancel(current_process)
+            self.skip_button['state'] = 'disabled'
+            self.skip_button.config(fg="ivory3")
+            self.freeze_button['state'] = 'disabled'
+            self.freeze_button.config(fg="ivory3")
             return
-        self.label_start.pack_forget()
-        current_process = self.after(1000, self.tick)
-        if self.schedule.state == 'initial':
-            self.label_sequence.config(text=("\n" + str(self.schedule.current_block.title) + "..."))
-            self.label_duration.config(text=self.current_time_status())
-            self.schedule.start()
+        if self.schedule.is_running():
             self.schedule.tick(1*self.tick_speed)
-        else:
-            if self.schedule.running():
-                self.schedule.tick(1*self.tick_speed)
-                self.progressbar["value"] = (self.schedule.current_block.initial_ticks -
-                                             self.schedule.current_block.ticks_left) % 60
-                self.progressbar.update()
-                self.label_duration.config(text=self.current_time_status())
-                self.label_config_text.config(text=self.current_config())
-            else:
-                self.label_sequence.config(text=("\n" + "\nTime over !"), bg="red", fg="white")
-                self.label_duration.config(text="", bg="red", fg="white")
-                self.progressbar.pack_forget()
-                self.center_frame.configure(bg="red")
-                self.after_cancel(current_process)
-                self.skip_button['state'] = 'disabled'
-                self.skip_button.config(fg="ivory3")
-                self.freeze_button['state'] = 'disabled'
-                self.freeze_button.config(fg="ivory3")
+            self.progressbar["value"] = (self.schedule.current_block.initial_ticks -
+                                         self.schedule.current_block.ticks_left) % 60
+            self.progressbar.update()
+            self.label_duration.config(text=self.current_time_status(), font='times 22')
+            self.label_config_text.config(text=self.current_config())
 
     def skip(self):
@@ -148,5 +146,10 @@
 
     def toggle_play_pause(self):
-        if not self.schedule.running():
+        if self.schedule.is_initial():
+            self.label_start.pack_forget()
+            self.schedule.start()
+            self.tick()
+            return
+        if not self.schedule.is_running():
             self.freeze_button.config(relief="raised", fg='black')
             self.label_sequence.config(fg="white")
@@ -157,5 +160,6 @@
             self.schedule.pause()
             self.freeze_button.config(relief="sunken", fg="red")
-            self.label_sequence.config(text=("\n" + "\n! timer paused !"), fg="red", bg="black")
+            self.label_sequence.config(text=("timer paused !"), fg="red", bg="black",
+                                       font='times 72')
             self.label_duration.config(text="", bg="black")
             self.center_frame.config(bg="black")
@@ -190,5 +194,4 @@
 
     def select_config(self):
-        self.config_state = 'user'
         self.config_files = [("all files", "*.json")]
         self.answer = filedialog.askopenfilename(parent=root,
@@ -205,5 +208,5 @@
                     default=Path(__file__).parent / 'configs' / 'default.json',
                     help='use --config /path/to/config_file.json to specify the configuration of the timer')
-parser.add_argument('--color', dest='color_file', required=False,
+parser.add_argument('--colors', dest='color_file', required=False,
                     default=Path(__file__).parent / 'configs' / 'colors.json')
 args = parser.parse_args()
