Index: /code/branches/core3/src/core/ConfigFileManager.cc
===================================================================
--- /code/branches/core3/src/core/ConfigFileManager.cc	(revision 1593)
+++ /code/branches/core3/src/core/ConfigFileManager.cc	(revision 1594)
@@ -38,10 +38,10 @@
 namespace orxonox
 {
-    SetConsoleCommandShortcutExtern(config).setArgumentCompleter(0, autocompletion::configvalueclasses()).setArgumentCompleter(1, autocompletion::configvalues()).setArgumentCompleter(2, autocompletion::configvalue());
-    SetConsoleCommandShortcutExtern(tconfig).setArgumentCompleter(0, autocompletion::configvalueclasses()).setArgumentCompleter(1, autocompletion::configvalues()).setArgumentCompleter(2, autocompletion::configvalue());
+    SetConsoleCommandShortcutExtern(config).argumentCompleter(0, autocompletion::configvalueclasses()).argumentCompleter(1, autocompletion::configvalues()).argumentCompleter(2, autocompletion::configvalue());
+    SetConsoleCommandShortcutExtern(tconfig).argumentCompleter(0, autocompletion::configvalueclasses()).argumentCompleter(1, autocompletion::configvalues()).argumentCompleter(2, autocompletion::configvalue());
     SetConsoleCommandShortcutExtern(reloadConfig);
     SetConsoleCommandShortcutExtern(cleanConfig);
-    SetConsoleCommandShortcutExtern(loadSettings).setArgumentCompleter(0, autocompletion::files());
-    SetConsoleCommandShortcutExtern(loadKeybindings).setArgumentCompleter(0, autocompletion::files());
+    SetConsoleCommandShortcutExtern(loadSettings).argumentCompleter(0, autocompletion::files());
+    SetConsoleCommandShortcutExtern(loadKeybindings).argumentCompleter(0, autocompletion::files());
 
     bool config(const std::string& classname, const std::string& varname, const std::string& value)
Index: /code/branches/core3/src/core/ConsoleCommand.cc
===================================================================
--- /code/branches/core3/src/core/ConsoleCommand.cc	(revision 1593)
+++ /code/branches/core3/src/core/ConsoleCommand.cc	(revision 1594)
@@ -45,5 +45,5 @@
     }
 
-    ConsoleCommand& ConsoleCommand::setArgumentCompleter(unsigned int param, ArgumentCompleter* completer)
+    ConsoleCommand& ConsoleCommand::argumentCompleter(unsigned int param, ArgumentCompleter* completer)
     {
         if (param < 5)
Index: /code/branches/core3/src/core/ConsoleCommand.h
===================================================================
--- /code/branches/core3/src/core/ConsoleCommand.h	(revision 1593)
+++ /code/branches/core3/src/core/ConsoleCommand.h	(revision 1594)
@@ -38,6 +38,10 @@
 
 
-#define SetConsoleCommand(classname, function,  bCreateShortcut) \
-    SetConsoleCommandGeneric(classname##function##consolecommand__, classname, orxonox::createConsoleCommand(orxonox::createFunctor(&classname::function), #function), bCreateShortcut)
+#define SetConsoleCommand(classname, function, bCreateShortcut) \
+    SetConsoleCommandAliasMulti(classname, function, #function, 0, bCreateShortcut)
+#define SetConsoleCommandAlias(classname, function, name, bCreateShortcut) \
+    SetConsoleCommandAliasMulti(classname, function, name, 0, bCreateShortcut)
+#define SetConsoleCommandAliasMulti(classname, function, name, number, bCreateShortcut) \
+    SetConsoleCommandGeneric(classname##function##consolecommand__##number, classname, orxonox::createConsoleCommand(orxonox::createFunctor(&classname::function), name), bCreateShortcut)
 
 #define SetConsoleCommandGeneric(fakevariable, classname, command, bCreateShortcut) \
@@ -46,8 +50,16 @@
 
 #define SetConsoleCommandShortcut(classname, function) \
-    SetConsoleCommandShortcutGeneric(function##consolecommand__, orxonox::createConsoleCommand(orxonox::createFunctor(&classname::function), #function))
+    SetConsoleCommandShortcutAliasMulti(classname, function, #function, 0)
+#define SetConsoleCommandShortcutAlias(classname, function, name) \
+    SetConsoleCommandShortcutAliasMulti(classname, function, name, 0)
+#define SetConsoleCommandShortcutAliasMulti(classname, function, name, number) \
+    SetConsoleCommandShortcutGeneric(function##consolecommand__##number, orxonox::createConsoleCommand(orxonox::createFunctor(&classname::function), name))
 
 #define SetConsoleCommandShortcutExtern(function) \
-    SetConsoleCommandShortcutGeneric(function##consolecommand__, orxonox::createConsoleCommand(orxonox::createFunctor(&function), #function))
+    SetConsoleCommandShortcutExternAliasMulti(function, #function, 0)
+#define SetConsoleCommandShortcutExternAlias(function, name) \
+    SetConsoleCommandShortcutExternAliasMulti(function, name, 0)
+#define SetConsoleCommandShortcutExternAliasMulti(function, name, number) \
+    SetConsoleCommandShortcutGeneric(function##consolecommand__##number, orxonox::createConsoleCommand(orxonox::createFunctor(&function), name))
 
 #define SetConsoleCommandShortcutGeneric(fakevariable, command) \
@@ -75,29 +87,29 @@
             ConsoleCommand(FunctorStatic* functor, const std::string& name = "");
 
-            inline ConsoleCommand& setDescription(const std::string& description)
+            inline ConsoleCommand& description(const std::string& description)
                 { this->ExecutorStatic::setDescription(description); return (*this); }
-            inline ConsoleCommand& setDescriptionParam(int param, const std::string& description)
+            inline ConsoleCommand& descriptionParam(int param, const std::string& description)
                 { this->ExecutorStatic::setDescriptionParam(param, description); return (*this); }
-            inline ConsoleCommand& setDescriptionReturnvalue(const std::string& description)
+            inline ConsoleCommand& descriptionReturnvalue(const std::string& description)
                 { this->ExecutorStatic::setDescriptionReturnvalue(description); return (*this); }
-            inline ConsoleCommand& setDefaultValues(const MultiTypeMath& param1)
+            inline ConsoleCommand& defaultValues(const MultiTypeMath& param1)
                 { this->ExecutorStatic::setDefaultValues(param1); return (*this); }
-            inline ConsoleCommand& setDefaultValues(const MultiTypeMath& param1, const MultiTypeMath& param2)
+            inline ConsoleCommand& defaultValues(const MultiTypeMath& param1, const MultiTypeMath& param2)
                 { this->ExecutorStatic::setDefaultValues(param1, param2); return (*this); }
-            inline ConsoleCommand& setDefaultValues(const MultiTypeMath& param1, const MultiTypeMath& param2, const MultiTypeMath& param3)
+            inline ConsoleCommand& defaultValues(const MultiTypeMath& param1, const MultiTypeMath& param2, const MultiTypeMath& param3)
                 { this->ExecutorStatic::setDefaultValues(param1, param2, param3); return (*this); }
-            inline ConsoleCommand& setDefaultValues(const MultiTypeMath& param1, const MultiTypeMath& param2, const MultiTypeMath& param3, const MultiTypeMath& param4)
+            inline ConsoleCommand& defaultValues(const MultiTypeMath& param1, const MultiTypeMath& param2, const MultiTypeMath& param3, const MultiTypeMath& param4)
                 { this->ExecutorStatic::setDefaultValues(param1, param2, param3, param4); return (*this); }
-            inline ConsoleCommand& setDefaultValues(const MultiTypeMath& param1, const MultiTypeMath& param2, const MultiTypeMath& param3, const MultiTypeMath& param4, const MultiTypeMath& param5)
+            inline ConsoleCommand& defaultValues(const MultiTypeMath& param1, const MultiTypeMath& param2, const MultiTypeMath& param3, const MultiTypeMath& param4, const MultiTypeMath& param5)
                 { this->ExecutorStatic::setDefaultValues(param1, param2, param3, param4, param5); return (*this); }
-            inline ConsoleCommand& setDefaultValue(unsigned int index, const MultiTypeMath& param)
+            inline ConsoleCommand& defaultValue(unsigned int index, const MultiTypeMath& param)
                 { this->ExecutorStatic::setDefaultValue(index, param); return (*this); }
 
-            inline ConsoleCommand& setAccessLevel(AccessLevel::Level level)
+            inline ConsoleCommand& accessLevel(AccessLevel::Level level)
                 { this->accessLevel_ = level; return (*this); }
             inline AccessLevel::Level getAccessLevel() const
                 { return this->accessLevel_; }
 
-            ConsoleCommand& setArgumentCompleter(unsigned int param, ArgumentCompleter* completer);
+            ConsoleCommand& argumentCompleter(unsigned int param, ArgumentCompleter* completer);
             ArgumentCompleter* getArgumentCompleter(unsigned int param) const;
 
@@ -110,15 +122,15 @@
                 { return this->argumentList_.end(); }
 
-            inline ConsoleCommand& setKeybindMode(KeybindMode::Enum mode)
+            inline ConsoleCommand& keybindMode(KeybindMode::Enum mode)
                 { this->keybindMode_ = mode; return *this; }
             inline KeybindMode::Enum getKeybindMode() const
                 { return this->keybindMode_; }
 
-            inline ConsoleCommand& setAxisParamIndex(int index)
+            inline ConsoleCommand& axisParamIndex(int index)
                 { this->axisParamIndex_ = index; return *this; }
             inline int getAxisParamIndex() const
                 { return this->axisParamIndex_; }
 
-            inline ConsoleCommand& setIsAxisRelative(bool val)
+            inline ConsoleCommand& isAxisRelative(bool val)
                 { this->bAxisRelative_ = val; return *this; }
             inline int getIsAxisRelative() const
Index: /code/branches/core3/src/core/ConsoleCommandCompilation.cc
===================================================================
--- /code/branches/core3/src/core/ConsoleCommandCompilation.cc	(revision 1593)
+++ /code/branches/core3/src/core/ConsoleCommandCompilation.cc	(revision 1594)
@@ -34,11 +34,11 @@
 namespace orxonox
 {
-    SetConsoleCommandShortcutExtern(source).setArgumentCompleter(0, autocompletion::files());
+    SetConsoleCommandShortcutExtern(source).argumentCompleter(0, autocompletion::files());
     SetConsoleCommandShortcutExtern(echo);
     SetConsoleCommandShortcutExtern(puts);
 
-    SetConsoleCommandShortcutExtern(read).setArgumentCompleter(0, autocompletion::files());
-    SetConsoleCommandShortcutExtern(append).setArgumentCompleter(0, autocompletion::files());
-    SetConsoleCommandShortcutExtern(write).setArgumentCompleter(0, autocompletion::files());
+    SetConsoleCommandShortcutExtern(read).argumentCompleter(0, autocompletion::files());
+    SetConsoleCommandShortcutExtern(append).argumentCompleter(0, autocompletion::files());
+    SetConsoleCommandShortcutExtern(write).argumentCompleter(0, autocompletion::files());
 
     SetConsoleCommandShortcutExtern(calculate);
Index: /code/branches/core3/src/core/IRC.cc
===================================================================
--- /code/branches/core3/src/core/IRC.cc	(revision 1593)
+++ /code/branches/core3/src/core/IRC.cc	(revision 1594)
@@ -39,7 +39,7 @@
 namespace orxonox
 {
-    SetConsoleCommand(IRC, say,  true).setAccessLevel(AccessLevel::User);
-    SetConsoleCommand(IRC, msg,  false).setAccessLevel(AccessLevel::User);
-    SetConsoleCommand(IRC, nick, false).setAccessLevel(AccessLevel::User);
+    SetConsoleCommand(IRC, say,  true).accessLevel(AccessLevel::User);
+    SetConsoleCommand(IRC, msg,  false).accessLevel(AccessLevel::User);
+    SetConsoleCommand(IRC, nick, false).accessLevel(AccessLevel::User);
 
     IRC::IRC()
Index: /code/branches/core3/src/core/Shell.cc
===================================================================
--- /code/branches/core3/src/core/Shell.cc	(revision 1593)
+++ /code/branches/core3/src/core/Shell.cc	(revision 1594)
@@ -45,9 +45,9 @@
     SetConsoleCommand(Shell, history, true);
 
-    SetConsoleCommandShortcutGeneric(log,     createConsoleCommand(createFunctor(&OutputHandler::log),     "log"    ));
-    SetConsoleCommandShortcutGeneric(error,   createConsoleCommand(createFunctor(&OutputHandler::error),   "error"  ));
-    SetConsoleCommandShortcutGeneric(warning, createConsoleCommand(createFunctor(&OutputHandler::warning), "warning"));
-    SetConsoleCommandShortcutGeneric(info,    createConsoleCommand(createFunctor(&OutputHandler::info),    "info"   ));
-    SetConsoleCommandShortcutGeneric(debug,   createConsoleCommand(createFunctor(&OutputHandler::debug),   "debug"  ));
+    SetConsoleCommandShortcut(OutputHandler, log);
+    SetConsoleCommandShortcut(OutputHandler, error);
+    SetConsoleCommandShortcut(OutputHandler, warning);
+    SetConsoleCommandShortcut(OutputHandler, info);
+    SetConsoleCommandShortcut(OutputHandler, debug);
 
     Shell::Shell()
Index: /code/branches/core3/src/core/TclBind.cc
===================================================================
--- /code/branches/core3/src/core/TclBind.cc	(revision 1593)
+++ /code/branches/core3/src/core/TclBind.cc	(revision 1594)
@@ -39,6 +39,6 @@
 namespace orxonox
 {
-    SetConsoleCommandShortcutGeneric(tcl, createConsoleCommand(createFunctor(&TclBind::tcl), "tcl"));
-    SetConsoleCommandShortcutGeneric(bgerror, createConsoleCommand(createFunctor(&TclBind::bgerror), "bgerror"));
+    SetConsoleCommandShortcut(TclBind, tcl);
+    SetConsoleCommandShortcut(TclBind, bgerror);
 
     TclBind::TclBind()
Index: /code/branches/core3/src/core/TclThreadManager.cc
===================================================================
--- /code/branches/core3/src/core/TclThreadManager.cc	(revision 1593)
+++ /code/branches/core3/src/core/TclThreadManager.cc	(revision 1594)
@@ -48,13 +48,13 @@
 namespace orxonox
 {
-    SetConsoleCommandShortcutGeneric(tclexecute, createConsoleCommand(createFunctor(&TclThreadManager::execute), "tclexecute")).setArgumentCompleter(0, autocompletion::tclthreads());
-    SetConsoleCommandShortcutGeneric(tclquery,   createConsoleCommand(createFunctor(&TclThreadManager::query),   "tclquery"  )).setArgumentCompleter(0, autocompletion::tclthreads());
+    SetConsoleCommandShortcutAlias(TclThreadManager, execute, "tclexecute").argumentCompleter(0, autocompletion::tclthreads());
+    SetConsoleCommandShortcutAlias(TclThreadManager, query,   "tclquery"  ).argumentCompleter(0, autocompletion::tclthreads());
     SetConsoleCommand(TclThreadManager, create,  false);
-    SetConsoleCommand(TclThreadManager, destroy, false).setArgumentCompleter(0, autocompletion::tclthreads());
-    SetConsoleCommand(TclThreadManager, execute, false).setArgumentCompleter(0, autocompletion::tclthreads());
-    SetConsoleCommand(TclThreadManager, query,   false).setArgumentCompleter(0, autocompletion::tclthreads());
+    SetConsoleCommand(TclThreadManager, destroy, false).argumentCompleter(0, autocompletion::tclthreads());
+    SetConsoleCommand(TclThreadManager, execute, false).argumentCompleter(0, autocompletion::tclthreads());
+    SetConsoleCommand(TclThreadManager, query,   false).argumentCompleter(0, autocompletion::tclthreads());
     SetConsoleCommand(TclThreadManager, status,  false);
-    SetConsoleCommand(TclThreadManager, dump,    false).setArgumentCompleter(0, autocompletion::tclthreads());
-    SetConsoleCommand(TclThreadManager, flush,   false).setArgumentCompleter(0, autocompletion::tclthreads());
+    SetConsoleCommand(TclThreadManager, dump,    false).argumentCompleter(0, autocompletion::tclthreads());
+    SetConsoleCommand(TclThreadManager, flush,   false).argumentCompleter(0, autocompletion::tclthreads());
 
     TclThreadManager::TclThreadManager()
Index: /code/branches/core3/src/orxonox/Orxonox.cc
===================================================================
--- /code/branches/core3/src/orxonox/Orxonox.cc	(revision 1593)
+++ /code/branches/core3/src/orxonox/Orxonox.cc	(revision 1594)
@@ -85,7 +85,7 @@
 namespace orxonox
 {
-  SetConsoleCommandShortcut(Orxonox, exit).setKeybindMode(KeybindMode::OnPress);
-  SetConsoleCommandShortcut(Orxonox, slomo).setAccessLevel(AccessLevel::Offline).setDefaultValue(0, 1.0).setAxisParamIndex(0).setIsAxisRelative(false);
-  SetConsoleCommandShortcut(Orxonox, setTimeFactor).setAccessLevel(AccessLevel::Offline).setDefaultValue(0, 1.0);
+  SetConsoleCommandShortcut(Orxonox, exit).keybindMode(KeybindMode::OnPress);
+  SetConsoleCommandShortcut(Orxonox, slomo).accessLevel(AccessLevel::Offline).defaultValue(0, 1.0).axisParamIndex(0).isAxisRelative(false);
+  SetConsoleCommandShortcut(Orxonox, setTimeFactor).accessLevel(AccessLevel::Offline).defaultValue(0, 1.0);
 
   /**
Index: /code/branches/core3/src/orxonox/hud/HUD.cc
===================================================================
--- /code/branches/core3/src/orxonox/hud/HUD.cc	(revision 1593)
+++ /code/branches/core3/src/orxonox/hud/HUD.cc	(revision 1594)
@@ -49,8 +49,8 @@
 namespace orxonox
 {
-    SetConsoleCommandShortcut(HUD, cycleNavigationFocus).setAccessLevel(AccessLevel::User);
-    SetConsoleCommandShortcut(HUD, releaseNavigationFocus).setAccessLevel(AccessLevel::User);
-    SetConsoleCommandShortcut(HUD, toggleFPS).setAccessLevel(AccessLevel::User);
-    SetConsoleCommandShortcut(HUD, toggleRenderTime).setAccessLevel(AccessLevel::User);
+    SetConsoleCommandShortcut(HUD, cycleNavigationFocus).accessLevel(AccessLevel::User);
+    SetConsoleCommandShortcut(HUD, releaseNavigationFocus).accessLevel(AccessLevel::User);
+    SetConsoleCommandShortcut(HUD, toggleFPS).accessLevel(AccessLevel::User);
+    SetConsoleCommandShortcut(HUD, toggleRenderTime).accessLevel(AccessLevel::User);
 
     using namespace Ogre;
Index: /code/branches/core3/src/orxonox/objects/Ambient.cc
===================================================================
--- /code/branches/core3/src/orxonox/objects/Ambient.cc	(revision 1593)
+++ /code/branches/core3/src/orxonox/objects/Ambient.cc	(revision 1594)
@@ -47,5 +47,5 @@
 namespace orxonox
 {
-    SetConsoleCommand(Ambient, setAmbientLightTest, false).setDefaultValues(ColourValue(1, 1, 1, 1)).setAccessLevel(AccessLevel::Offline);
+    SetConsoleCommandAlias(Ambient, setAmbientLightTest, "setAmbientLight", false).defaultValues(ColourValue(1, 1, 1, 1)).accessLevel(AccessLevel::Offline);
 
     CreateFactory(Ambient);
Index: /code/branches/core3/src/orxonox/objects/SpaceShip.cc
===================================================================
--- /code/branches/core3/src/orxonox/objects/SpaceShip.cc	(revision 1593)
+++ /code/branches/core3/src/orxonox/objects/SpaceShip.cc	(revision 1594)
@@ -54,15 +54,15 @@
 namespace orxonox
 {
-    SetConsoleCommand(SpaceShip, setMaxSpeedTest, false).setAccessLevel(AccessLevel::Debug);
-    SetConsoleCommand(SpaceShip, whereAmI, true).setAccessLevel(AccessLevel::User);
-    SetConsoleCommand(SpaceShip, moveLongitudinal, true).setAccessLevel(AccessLevel::User).setDefaultValue(0, 1.0f).setAxisParamIndex(0).setKeybindMode(KeybindMode::OnHold);
-    SetConsoleCommand(SpaceShip, moveLateral, true).setAccessLevel(AccessLevel::User).setDefaultValue(0, 1.0f).setAxisParamIndex(0).setKeybindMode(KeybindMode::OnHold);
-    SetConsoleCommand(SpaceShip, moveYaw, true).setAccessLevel(AccessLevel::User).setDefaultValue(0, 1.0f).setAxisParamIndex(0).setKeybindMode(KeybindMode::OnHold);
-    SetConsoleCommand(SpaceShip, movePitch, true).setAccessLevel(AccessLevel::User).setDefaultValue(0, 1.0f).setAxisParamIndex(0).setKeybindMode(KeybindMode::OnHold);
-    SetConsoleCommand(SpaceShip, moveRoll, true).setAccessLevel(AccessLevel::User).setDefaultValue(0, 1.0f).setAxisParamIndex(0).setKeybindMode(KeybindMode::OnHold);
-    SetConsoleCommand(SpaceShip, fire, true).setAccessLevel(AccessLevel::User).setKeybindMode(KeybindMode::OnHold);
-    SetConsoleCommandGeneric(test1, SpaceShip, createConsoleCommand(createFunctor(&SpaceShip::setMaxSpeedTest), "setMaxSpeed"), false).setAccessLevel(AccessLevel::Debug);
-    SetConsoleCommandGeneric(test2, SpaceShip, createConsoleCommand(createFunctor(&SpaceShip::setMaxSpeedTest), "setMaxBlubber"), false).setAccessLevel(AccessLevel::Debug);
-    SetConsoleCommandGeneric(test3, SpaceShip, createConsoleCommand(createFunctor(&SpaceShip::setMaxSpeedTest), "setRofl"), false).setAccessLevel(AccessLevel::Debug);
+    SetConsoleCommand(SpaceShip, setMaxSpeedTest, false).accessLevel(AccessLevel::Debug);
+    SetConsoleCommand(SpaceShip, whereAmI, true).accessLevel(AccessLevel::User);
+    SetConsoleCommand(SpaceShip, moveLongitudinal, true).accessLevel(AccessLevel::User).defaultValue(0, 1.0f).axisParamIndex(0).keybindMode(KeybindMode::OnHold);
+    SetConsoleCommand(SpaceShip, moveLateral, true).accessLevel(AccessLevel::User).defaultValue(0, 1.0f).axisParamIndex(0).keybindMode(KeybindMode::OnHold);
+    SetConsoleCommand(SpaceShip, moveYaw, true).accessLevel(AccessLevel::User).defaultValue(0, 1.0f).axisParamIndex(0).keybindMode(KeybindMode::OnHold);
+    SetConsoleCommand(SpaceShip, movePitch, true).accessLevel(AccessLevel::User).defaultValue(0, 1.0f).axisParamIndex(0).keybindMode(KeybindMode::OnHold);
+    SetConsoleCommand(SpaceShip, moveRoll, true).accessLevel(AccessLevel::User).defaultValue(0, 1.0f).axisParamIndex(0).keybindMode(KeybindMode::OnHold);
+    SetConsoleCommand(SpaceShip, fire, true).accessLevel(AccessLevel::User).keybindMode(KeybindMode::OnHold);
+    SetConsoleCommandAliasMulti(SpaceShip, setMaxSpeedTest, "setMaxSpeed", 1, false).accessLevel(AccessLevel::Debug);
+    SetConsoleCommandAliasMulti(SpaceShip, setMaxSpeedTest, "setMaxBlubber", 2, false).accessLevel(AccessLevel::Debug);
+    SetConsoleCommandAliasMulti(SpaceShip, setMaxSpeedTest, "setRofl", 3, false).accessLevel(AccessLevel::Debug);
 
     CreateFactory(SpaceShip);
Index: /code/branches/core3/src/orxonox/objects/SpaceShipAI.cc
===================================================================
--- /code/branches/core3/src/orxonox/objects/SpaceShipAI.cc	(revision 1593)
+++ /code/branches/core3/src/orxonox/objects/SpaceShipAI.cc	(revision 1594)
@@ -44,6 +44,6 @@
 namespace orxonox
 {
-    SetConsoleCommand(SpaceShipAI, createEnemy, true).setDefaultValue(0, 1);
-    SetConsoleCommand(SpaceShipAI, killEnemies, true).setDefaultValue(0, 0);
+    SetConsoleCommand(SpaceShipAI, createEnemy, true).defaultValue(0, 1);
+    SetConsoleCommand(SpaceShipAI, killEnemies, true).defaultValue(0, 0);
 
     CreateFactory(SpaceShipAI);
