Index: flowtimer/Phase.py
===================================================================
--- flowtimer/Phase.py	(revision 0384305f151d695b92528d8b4b1bb853bb61b736)
+++ flowtimer/Phase.py	(revision 813e855eac7ce0884d4d8b35d681840957775bae)
@@ -56,5 +56,5 @@
         self._state = "aborted"
 
-    def aborted(self):
+    def is_aborted(self):
         return self.state == "aborted"
 
@@ -69,12 +69,15 @@
         self._state = "paused"
 
-    def running(self):
+    def is_running(self):
         return self._state == "running"
         # return self.time_left > 0
 
-    def completed(self):
-        return self._state == "completed"
+    def is_terminated(self):
+        return (self.is_completed() or self.is_aborted())
 
-    def paused(self):
+    def is_completed(self):
+        return self.ticks_left < 1
+
+    def is_paused(self):
         return self._state == "paused"
 
Index: flowtimer/RecurringPhaseSequence.py
===================================================================
--- flowtimer/RecurringPhaseSequence.py	(revision 0384305f151d695b92528d8b4b1bb853bb61b736)
+++ flowtimer/RecurringPhaseSequence.py	(revision 813e855eac7ce0884d4d8b35d681840957775bae)
@@ -33,5 +33,5 @@
         assert phases is not []
         self._title = title
-        self.state = "initial"
+        self._state = "initial"
         self.phases = phases
         self.current_phase = phases[0]
@@ -74,15 +74,29 @@
             sum([each.ticks_left for each in self.upcoming_phases_in_pass()]))
 
-    def completed(self):
+    def state(self):
+        if self.is_completed():
+            return "completed"
+        return self._state
+
+    def is_final_round(self):
+        return self.passes_left == 0
+
+    def is_completed(self):
         return ((self.passes_left < 1) and
                 (not self.upcoming_phases_in_pass() and
-                 self.current_phase.completed()))
+                 self.current_phase.is_completed()))
+
+    def is_terminated(self):
+        return (self.is_aborted() or self.is_completed())
+
+    def is_aborted(self):
+        return self._state == 'aborted'
 
     def abort(self):
         self.current_phase.abort()
-        self.state = "aborted"
+        self._state = "aborted"
 
     def start(self):
-        self.state = "running"
+        self._state = "running"
 
     def skip(self):
@@ -92,5 +106,5 @@
             return
         else:
-            if self.passes_left == 0:
+            if self.is_final_round():
                 self.abort()
                 return
@@ -110,5 +124,5 @@
             self.passes_left -= 1
             if self.passes_left < 1:
-                self.state = "completed"
+                self._state = "completed"
             else:
                 self.current_phase.reset()
@@ -116,12 +130,10 @@
 
     def tick(self, ticks):
-        if not self.completed():
+        if not self.is_completed():
             result = self.current_phase.tick(ticks)
-            if self.current_phase.completed():
+            if self.current_phase.is_completed():
                 self.advance_to_next_phase()
                 result = self.tick(abs(result))
                 return
-#        if self.completed():
-#            self.advance_to_next_phase()
 
     def unrolled(self):
Index: flowtimer/Schedule.py
===================================================================
--- flowtimer/Schedule.py	(revision 0384305f151d695b92528d8b4b1bb853bb61b736)
+++ flowtimer/Schedule.py	(revision 813e855eac7ce0884d4d8b35d681840957775bae)
@@ -119,5 +119,5 @@
 
     def is_completed(self):
-        if (self.current_block.completed()) and (self.current_block_is_final()):
+        if (self.current_block.is_completed()) and (self.current_block_is_final()):
             return True
         else:
@@ -137,13 +137,16 @@
 
     def skip(self):
+        if self.current_block.is_sequence():
+            print("Skip the next phase in sequence")
+            self.current_block.skip()
+            if self.current_block.is_terminated():
+                if self.upcoming_blocks():
+                    self.current_block = self.upcoming_blocks()[0]
+                else:
+                    self.abort()
+            return
         if self.current_block_is_final():
             print("Time over")
             self.abort()
-            return
-        if self.current_block.is_sequence():
-            print("Skip the next phase in sequence")
-            self.current_block.skip()
-            if self.current_block.completed():
-                self.current_block = self.upcoming_blocks()[0]
             return
         index = self.blocks.index(self.current_block)
@@ -173,5 +176,5 @@
         if not self.is_completed():
             self.current_block.tick(ticks)
-            if self.current_block.completed():
+            if self.current_block.is_completed():
                 if self.current_block_is_final():
                     self._state = "completed"
Index: flowtimer/main.py
===================================================================
--- flowtimer/main.py	(revision 0384305f151d695b92528d8b4b1bb853bb61b736)
+++ flowtimer/main.py	(revision 813e855eac7ce0884d4d8b35d681840957775bae)
@@ -69,5 +69,5 @@
                                            orient="horizontal", length=600, mode="determinate")
         self.progressbar["maximum"] = 59
-        self.progressbar.pack(side='top')
+        self.progressbar.pack(side='top', ipady=30)
         self.label_duration = tk.Label(self.center_frame, bg='green')
         self.label_duration.pack(side='top', fill='both', expand=True)
@@ -124,8 +124,9 @@
         current_process = self.after(1000, self.tick)
         if self.schedule.is_terminated():
-            self.label_sequence.config(text=("\n" + "\nTime over !"),
+            self.label_sequence.config(text="Time over !", font='times 22',
                                        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'),
+            self.label_duration.config(text="",
+                                       bg=self.colors_for_phase("Completed").get('duration_label'),
                                        fg="white")
             self.progressbar.pack_forget()
@@ -147,5 +148,5 @@
                                        fg="white")
             self.label_duration.config(text=self.current_time_status(), font='times 22',
-                                       bg=colors.get('duration_label'),
+                                       bg=colors.get('widget'),
                                        fg="white")
             self.center_frame.configure(bg=colors.get('center_frame'))
Index: tests/test_phase.py
===================================================================
--- tests/test_phase.py	(revision 0384305f151d695b92528d8b4b1bb853bb61b736)
+++ tests/test_phase.py	(revision 813e855eac7ce0884d4d8b35d681840957775bae)
@@ -20,5 +20,5 @@
         phase.start()
         assert phase.state == "running"
-        assert phase.running() is True
+        assert phase.is_running() is True
 
     def test_phase_pause(self):
@@ -27,5 +27,5 @@
         phase.pause()
         assert phase.state == "paused"
-        assert phase.paused() is True
+        assert phase.is_paused() is True
 
     def test_phase_abort(self):
@@ -33,5 +33,5 @@
         phase.abort()
         assert phase.state == "aborted"
-        assert phase.aborted() is True
+        assert phase.is_aborted() is True
 
     def test_phase_tick(self):
@@ -47,5 +47,5 @@
         phase.tick(300)
         assert phase.ticks_left == 0
-        assert phase.completed() is True
+        assert phase.is_completed() is True
 
     def test_phase_tick_beyond_completion(self):
Index: tests/test_recurring_phase_sequence.py
===================================================================
--- tests/test_recurring_phase_sequence.py	(revision 0384305f151d695b92528d8b4b1bb853bb61b736)
+++ tests/test_recurring_phase_sequence.py	(revision 813e855eac7ce0884d4d8b35d681840957775bae)
@@ -2,5 +2,4 @@
 import json
 
-from flowtimer.Phase import Phase
 from flowtimer.RecurringPhaseSequence import RecurringPhaseSequence
 
@@ -23,5 +22,5 @@
         json_string = recurring_phase_sequence.to_json()
         data = json.loads(json_string)
-        assert data['state'] == "initial"
+        assert data['_state'] == "initial"
         assert data['initial_repetitions'] == 3
         assert data['passes_left'] == 3
@@ -29,5 +28,5 @@
 
     def test_initial_state(self, recurring_phase_sequence):
-        assert recurring_phase_sequence.state == "initial"
+        assert recurring_phase_sequence.state() == "initial"
         assert recurring_phase_sequence.current_phase.title == "Tasking"
         assert recurring_phase_sequence.passes_left == 3
@@ -57,14 +56,14 @@
 
     def test_completed(self, recurring_phase_sequence):
-        assert not recurring_phase_sequence.completed()
+        assert not recurring_phase_sequence.is_completed()
         for _ in range(3):
             for phase in recurring_phase_sequence.phases:
                 recurring_phase_sequence.tick(phase.initial_ticks)
-        assert recurring_phase_sequence.completed()
+        assert recurring_phase_sequence.is_completed()
 
     def test_abort(self, recurring_phase_sequence):
         recurring_phase_sequence.abort()
-        assert recurring_phase_sequence.state == "aborted"
-        assert recurring_phase_sequence.current_phase.aborted()
+        assert recurring_phase_sequence.state() == "aborted"
+        assert recurring_phase_sequence.current_phase.is_aborted()
 
     def test_tick_progression(self, recurring_phase_sequence):
Index: tests/test_schedule.py
===================================================================
--- tests/test_schedule.py	(revision 0384305f151d695b92528d8b4b1bb853bb61b736)
+++ tests/test_schedule.py	(revision 813e855eac7ce0884d4d8b35d681840957775bae)
@@ -23,5 +23,5 @@
         assert schedule.blocks == [phase1, schedule.blocks[1]]
         assert schedule.current_block == phase1
-        assert schedule.state == "initial"
+        assert schedule.state() == "initial"
 
     def test_default_json_string(self):
@@ -48,5 +48,5 @@
         schedule, phase1, _, _ = setup_schedule
         schedule.start()
-        assert schedule.state == "running"
+        assert schedule.state() == "running"
         # assert phase1.ticks_left < phase1.initial_ticks  # Assuming the phase reduces ticks when started
 
@@ -54,17 +54,17 @@
         schedule, _, _, _ = setup_schedule
         schedule.start()
-        assert schedule.running() is True
+        assert schedule.is_running() is True
         schedule.pause()
-        assert schedule.running() is False
+        assert schedule.is_running() is False
 
     def test_paused(self, setup_schedule):
         schedule, _, _, _ = setup_schedule
         schedule.pause()
-        assert schedule.paused() is True
+        assert schedule.is_paused() is True
 
     def test_abort(self, setup_schedule):
         schedule, _, _, _ = setup_schedule
         schedule.abort()
-        assert schedule.state == "aborted"
+        assert schedule.state() == "aborted"
 
     def test_completed(self, setup_schedule):
@@ -74,6 +74,6 @@
         schedule.tick(phase1.initial_ticks)  # Complete phase1
         schedule.tick(sequence.initial_ticks)  # Complete sequence
-        assert schedule.completed() is True
-        assert schedule.state == "completed"
+        assert schedule.is_completed() is True
+        assert schedule.state() == "completed"
 
     def test_advance_to_next_block(self, setup_schedule):
