diff --git a/include/teqp/derivs.hpp b/include/teqp/derivs.hpp
index a893c3b4556cf2a811a79a350fcca44bd0b8a669..38d0cbfd1c1dcff48e12358392ccb201c93225d4 100644
--- a/include/teqp/derivs.hpp
+++ b/include/teqp/derivs.hpp
@@ -213,7 +213,12 @@ struct TDXDerivatives {
     template<int iT, int iD, ADBackends be>
     static auto get_Arxy(const Model& model, const Scalar& T, const Scalar& rho, const VectorType& molefrac) {
         auto wrapper = AlphaCallWrapper<0, decltype(model)>(model);
-        return get_Agenxy<iT, iD, be>(wrapper, T, rho, molefrac);
+        if constexpr (iT == 0 && iD == 0) {
+            return wrapper.alpha(T, rho, molefrac);
+        }
+        else {
+            return get_Agenxy<iT, iD, be>(wrapper, T, rho, molefrac);
+        }
     }
 
     /**
@@ -227,7 +232,12 @@ struct TDXDerivatives {
     template<int iT, int iD, ADBackends be>
     static auto get_Aigxy(const Model& model, const Scalar& T, const Scalar& rho, const VectorType& molefrac) {
         auto wrapper = AlphaCallWrapper<1, decltype(model)>(model);
-        return get_Agenxy<iT, iD, be>(wrapper, T, rho, molefrac);
+        if constexpr (iT == 0 && iD == 0) {
+            return wrapper.alpha(T, rho, molefrac);
+        }
+        else {
+            return get_Agenxy<iT, iD, be>(wrapper, T, rho, molefrac);
+        }
     }
 
     template<ADBackends be = ADBackends::autodiff>
diff --git a/interface/pybind11_wrapper.cpp b/interface/pybind11_wrapper.cpp
index 4df8decea70596fb886a8f7f9977edff54ef109d..c9bafa435796e5716311f3d2c3056999e765fdd0 100644
--- a/interface/pybind11_wrapper.cpp
+++ b/interface/pybind11_wrapper.cpp
@@ -21,19 +21,11 @@ template<typename Model, int iT, int iD, typename Class>
 void add_ig_deriv_impl(Class& cls) {
     using idx = TDXDerivatives<Model>;
     using RAX = Eigen::Ref<Eigen::ArrayXd>;
-    if constexpr (iT == 0 && iD == 0){
-        cls.def("get_Aig00", 
-            [](const Model& m, const double T, const double rho, const RAX molefrac) { return AlphaCallWrapper<1, decltype(m)>(m).alpha(T, rho, molefrac); }, 
-            py::arg("T"), py::arg("rho"), py::arg("molefrac").noconvert()
-        );
-    }
-    else{
-        const std::string fname = "get_Aig" + std::to_string(iT) + std::to_string(iD);
-        cls.def(fname.c_str(), 
-            [](const Model& m, const double T, const double rho, const RAX molefrac) { return idx::template get_Aigxy<iT, iD, ADBackends::autodiff>(m, T, rho, molefrac); }, 
-            py::arg("T"), py::arg("rho"), py::arg("molefrac").noconvert()
-        );
-    }
+    const std::string fname = "get_Aig" + std::to_string(iT) + std::to_string(iD);
+    cls.def(fname.c_str(),
+        [](const Model& m, const double T, const double rho, const RAX molefrac) { return idx::template get_Aigxy<iT, iD, ADBackends::autodiff>(m, T, rho, molefrac); },
+        py::arg("T"), py::arg("rho"), py::arg("molefrac").noconvert()
+    );
 }
 
 template<typename Model, typename Class>