diff --git a/robotgame/logic/__init__.py b/robotgame/logic/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/robotgame/logic/direction.py b/robotgame/logic/direction.py
new file mode 100644
index 0000000..e944bf3
--- /dev/null
+++ b/robotgame/logic/direction.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+
+# This file is part of ROBOTGAME
+#
+# ROBOTGAME is free software: you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation, either version 3 of the License, or (at your option) any later
+# version.
+#
+# ROBOTGAME is distributed in the hope that it will be useful, but WITHOUT ANY
+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+# A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# ROBOTGAME. If not, see .
+#
+# ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '
+#
+# direction.py
+# --------------------
+# date created : Tue Aug 7 2012
+# copyright : (C) 2012 Niels G. W. Serup
+# maintained by : Niels G. W. Serup
+
+"""Directions."""
+
+class Direction(object):
+ @staticmethod
+ def next_pos(pos):
+ raise NotImplementedError
+
+class Up(Direction):
+ @staticmethod
+ def next_pos(pos):
+ x, y = pos
+ return x, y - 1
+
+class Right(Direction):
+ @staticmethod
+ def next_pos(pos):
+ x, y = pos
+ return x + 1, y
+
+class Down(Direction):
+ @staticmethod
+ def next_pos(pos):
+ x, y = pos
+ return x, y + 1
+
+class Left(Direction):
+ @staticmethod
+ def next_pos(pos):
+ x, y = pos
+ return x - 1, y