diff --git a/python-api-src/lib_unittype.cpp b/python-api-src/lib_unittype.cpp
index 0586d1bd53ad397c9a8d5a3e1ebc8d082ea9f1df..c3535b422a8dc554102a505ef9edc15f94ac98d5 100644
--- a/python-api-src/lib_unittype.cpp
+++ b/python-api-src/lib_unittype.cpp
@@ -5,6 +5,7 @@ namespace py = pybind11;
 void define_unittype(py::module & m)
 {
     py::class_<UnitType>(m, "UnitType")
+        .def(py::init<const sc2::UnitTypeID &, IDABot &>())
         .def("is", &UnitType::is, "Check if UnitType is UnitTypeID")
         .def(py::self == py::self)
         .def_property_readonly("name", &UnitType::getName)
diff --git a/python-api-src/library.cpp b/python-api-src/library.cpp
index c5a4e4fc6db1e35c2ebc04b418c4321eeca90300..855f44713acbba8bc57f6e83f4d19f217ce93f97 100644
--- a/python-api-src/library.cpp
+++ b/python-api-src/library.cpp
@@ -26,6 +26,18 @@ PYBIND11_MODULE(library, m)
         .value("Protoss", sc2::Race::Protoss)
         .value("Random", sc2::Race::Random);
 
+    /*
+    TODO: These also needs to be defined
+
+    typedef SC2Type<ABILITY_ID>   AbilityID;
+    typedef SC2Type<UPGRADE_ID>   UpgradeID;
+    typedef SC2Type<BUFF_ID>      BuffID;
+    */
+    py::class_<sc2::UnitTypeID>(m, "UnitTypeID")
+        .def(py::init<sc2::UNIT_TYPEID>());
+
+    py::implicitly_convertible<sc2::UNIT_TYPEID, sc2::UnitTypeID>();
+
     py::class_<sc2::Agent>(m, "Agent")
         .def(py::init());