diff --git a/python-api-src/library.cpp b/python-api-src/library.cpp
index efa1fe9a2a2529f53f14dadcedf2341fc9d89a2b..1ce12d9bfb1abc2ca68c438d8041326664721bd0 100644
--- a/python-api-src/library.cpp
+++ b/python-api-src/library.cpp
@@ -19,6 +19,7 @@ PYBIND11_MODULE(library, m)
 
     py::class_<Coordinator>(m, "Coordinator")
         .def(py::init())
+        .def(py::init<std::string>())
         .def("set_participants", &sc2::Coordinator::SetParticipants, "participants"_a)
         .def("launch_starcraft", &sc2::Coordinator::LaunchStarcraft)
         .def("start_game", &sc2::Coordinator::StartGame, "map_path"_a)
diff --git a/python-api-src/library.h b/python-api-src/library.h
index ec250c5bdc1fc2f474f88fbf2577866a970d355f..fb671e11555b6bfad74f8fc45baf7093a3b89e6c 100644
--- a/python-api-src/library.h
+++ b/python-api-src/library.h
@@ -14,12 +14,26 @@ using namespace pybind11::literals;
 class Coordinator : public sc2::Coordinator
 {
 public:
-    // TODO: We might not always want default value when we run on Linux
     Coordinator() : sc2::Coordinator()
     {
-        char *argv[] = { "executable", NULL};
-        int argc = sizeof(argv) / sizeof(char*) - 1;
-        LoadSettings(argc, argv);
+        std::vector<std::string> arguments = { "pycommandcenter" };
+        CustomLoadSettings(arguments);
+    }
+
+    Coordinator(std::string path) : sc2::Coordinator()
+    {
+        std::vector<std::string> arguments = { "pycommandcenter", "-e", path };
+        CustomLoadSettings(arguments);
+    }
+
+    void CustomLoadSettings(std::vector<std::string> arguments)
+    {
+        std::vector<char*> argv;
+        for (const auto& arg : arguments)
+            argv.push_back((char*)arg.data());
+        argv.push_back(nullptr);
+        LoadSettings(argv.size() - 1, argv.data());
+
     }
 };