diff --git a/TODO b/TODO
index 10c6b51bf3709178f62aa827765927cb5c8bf18f..41ad987667937f120f0cf2046effaca926bc9029 100644
--- a/TODO
+++ b/TODO
@@ -176,6 +176,13 @@
 
   And a few others.
 
-* Use bitfields instead of extra lists for virtual screens?
+* Code cleaning
 
-* Dispatch table for key bindings instead of keysym->enum->case?
+  - Obivous cleanup: The event switch is way too big.
+
+  - The states are known everywhere. A tight state machine would be
+    nicer.
+
+  - Dispatch table for key bindings instead of keysym->enum->case?
+
+  - Use bitfields instead of extra lists for virtual screens?