diff --git a/game/engine/ButtonList.lua b/game/engine/ButtonList.lua
index 16e5b34f4bfd9e7971b3324351c750b5c3b79af2..9e401cf67fdb46a4966b50ac6f01509c765fc2c3 100644
--- a/game/engine/ButtonList.lua
+++ b/game/engine/ButtonList.lua
@@ -1,7 +1,7 @@
 require "engine.class"
 require "engine.Tiles"
 require "engine.Mouse"
-require "engine.KeyCommand"
+require "engine.KeyBind"
 
 --- Handles dialog windows
 module(..., package.seeall, class.make)
@@ -49,18 +49,18 @@ function _M:close()
 end
 
 function _M:setKeyHandling()
-	self.old_key = engine.KeyCommand.current
-	self.key = engine.KeyCommand.new()
+	self.old_key = engine.KeyBind.current
+	self.key = engine.KeyBind.new()
 	self.key:setCurrent()
-	self.key:addCommands
+	self.key:addBinds
 	{
-		_UP = function()
+		MOVE_UP = function()
 			self:select(-1, true)
 		end,
-		_DOWN = function()
+		MOVE_DOWN = function()
 			self:select(1, true)
 		end,
-		_RETURN = function()
+		ACCEPT = function()
 			self:click()
 		end,
 	}
diff --git a/game/engine/KeyBind.lua b/game/engine/KeyBind.lua
index b33be97fe1cc844bd9d80bcf9735b7448cc15959..7f06e40c7059b2bac52a2af8ae19a4a2d7bab756 100644
--- a/game/engine/KeyBind.lua
+++ b/game/engine/KeyBind.lua
@@ -70,7 +70,7 @@ end
 
 function _M:receiveKey(sym, ctrl, shift, alt, meta, unicode)
 	local ks, us = self:makeKeyString(sym, ctrl, shift, alt, meta, unicode)
-	print("[BIND]", sym, ctrl, shift, alt, meta, unicode and string.byte(unicode), " :=: ", ks, us, " ?=? ", self.binds[ks], us and self.binds[us])
+	print("[BIND]", sym, ctrl, shift, alt, meta, unicode, " :=: ", ks, us, " ?=? ", self.binds[ks], us and self.binds[us])
 	if self.binds[ks] and self.virtuals[self.binds[ks]] then
 		self.virtuals[self.binds[ks]](sym, ctrl, shift, alt, meta, unicode)
 		return
@@ -98,6 +98,7 @@ function _M:addBinds(t)
 	local later = {}
 	for virtual, fct in pairs(t) do
 		if type(fct) == "function" then
+		print("bind", virtual, fct)
 			self:addBind(virtual, fct)
 		else
 			later[virtual] = fct
diff --git a/game/engine/init.lua b/game/engine/init.lua
index 7f9669321baeb79d33f662c069aa288b4d6dbd05..2774e8cacb8b20f404bd85833f6f88eb26052ad8 100644
--- a/game/engine/init.lua
+++ b/game/engine/init.lua
@@ -27,6 +27,9 @@ window.size = "1024x768"
 ]]
 config.load("/settings.cfg")
 
+-- Load default keys
+engine.KeyBind:load("move,actions")
+
 -- Load remaps
 engine.KeyBind:loadRemap("/keybinds.cfg")
 
diff --git a/game/special/mainmenu/class/Game.lua b/game/special/mainmenu/class/Game.lua
index f296dbfd9c2e6f8dce8b852e38851f9d06203c7f..a3bcba47d3827c95a2af7861170221b959a101a1 100644
--- a/game/special/mainmenu/class/Game.lua
+++ b/game/special/mainmenu/class/Game.lua
@@ -1,7 +1,7 @@
 require "engine.class"
 require "engine.Game"
 require "engine.Module"
-require "engine.KeyCommand"
+require "engine.KeyBind"
 local Savefile = require "engine.Savefile"
 local Dialog = require "engine.Dialog"
 local ButtonList = require "engine.ButtonList"
@@ -9,7 +9,7 @@ local ButtonList = require "engine.ButtonList"
 module(..., package.seeall, class.inherit(engine.Game))
 
 function _M:init()
-	engine.Game.init(self, engine.KeyCommand.new())
+	engine.Game.init(self, engine.KeyBind.new())
 
 	self.background = core.display.loadImage("/data/gfx/mainmenu/background.jpg")
 end
@@ -135,7 +135,7 @@ function _M:selectStepNew()
 	self.step = ButtonList.new(self.mod_list, 10, 10, self.w * 0.24, (5 + 35) * #self.mod_list, nil, 5)
 	self.step:setKeyHandling()
 	self.step:setMouseHandling()
-	self.step.key:addCommand("_ESCAPE", function() self:unregisterDialog(display_module) self:selectStepMain() end)
+	self.step.key:addBind("EXIT", function() self:unregisterDialog(display_module) self:selectStepMain() end)
 end
 
 function _M:selectStepLoad()
@@ -185,5 +185,5 @@ function _M:selectStepLoad()
 	self.step:select(2)
 	self.step:setKeyHandling()
 	self.step:setMouseHandling()
-	self.step.key:addCommand("_ESCAPE", function() self:unregisterDialog(display_module) self:selectStepMain() end)
+	self.step.key:addBind("EXIT", function() self:unregisterDialog(display_module) self:selectStepMain() end)
 end