diff --git a/include/teqp/constants.hpp b/include/teqp/constants.hpp
index ed70f2049f28100fc0edba30dae19d292c12a28a..45589ad23f15965ba6617232c849384c93960775 100644
--- a/include/teqp/constants.hpp
+++ b/include/teqp/constants.hpp
@@ -5,7 +5,7 @@ const double N_A = 6.02214076e23; ///< Avogadro's number
 ///< Gas constant, according to CODATA 2019, in the given number type
 template<typename NumType>
 const auto get_R_gas() {
-	const double k_B = 1.380649e-23; ///< Boltzmann constant
-	const double N_A = 6.02214076e23; ///< Avogadro's number
-	return N_A*k_B;
+	const NumType k_B = 1.380649e-23; ///< Boltzmann constant
+	const NumType N_A_ = 6.02214076e23; ///< Avogadro's number
+	return static_cast<NumType>(N_A_*k_B);
 };
\ No newline at end of file
diff --git a/include/teqp/types.hpp b/include/teqp/types.hpp
index 47505dfb53bb12c8eb2d4f0ff3d2528eda7c92c2..60d51479dbba041d98641f6f7cc7a2df6c960c96 100644
--- a/include/teqp/types.hpp
+++ b/include/teqp/types.hpp
@@ -63,7 +63,7 @@ auto getbaseval(const T& expr)
 auto toeig = [](const std::vector<double>& v) -> Eigen::ArrayXd { return Eigen::Map<const Eigen::ArrayXd>(&(v[0]), v.size()); };
 
 auto all_same_length = [](const nlohmann::json& j, const std::vector<std::string>& ks) {
-    std::set<int> lengths;
+    std::set<decltype(j[0].size())> lengths;
     for (auto k : ks) { lengths.insert(j[k].size()); }
     return lengths.size() == 1;
 };
diff --git a/src/time_fugcoeff.cpp b/src/time_fugcoeff.cpp
index 7647dcc512ce0b705f42e40e4e3f57a3f9daf26e..b103d90878c83041904326c8de57375019dfb56b 100644
--- a/src/time_fugcoeff.cpp
+++ b/src/time_fugcoeff.cpp
@@ -28,19 +28,25 @@ int main()
     bool loaded_REFPROP = load_REFPROP(err, path, DLL_name);
     printf("Loaded refprop: %s @ address %zu\n", loaded_REFPROP ? "true" : "false", REFPROP_address());
     if (!loaded_REFPROP) { return EXIT_FAILURE; }
-    char hpath[256] = " ";
-    strcpy(hpath, const_cast<char*>(path.c_str()));
-    SETPATHdll(hpath, 255);
+    
+    {
+        char hpath[256] = " ";
+        strcpy(hpath, const_cast<char*>(path.c_str()));
+        SETPATHdll(hpath, 255);
+    }
 
-    int ierr = 0, nc = 1;
-    char herr[256], hfld[10001] = "PROPANE", hhmx[256] = "HMX.BNC", href[4] = "DEF";
-    SETUPdll(nc, hfld, hhmx, href, ierr, herr, 10000, 255, 3, 255);
-    if (ierr != 0) {
-        printf("This ierr: %d herr: %s\n", ierr, herr);
-        return EXIT_FAILURE;
+    {
+        int ierr = 0, nc = 1;
+        char herr[256], hfld[10001] = "PROPANE", hhmx[256] = "HMX.BNC", href[4] = "DEF";
+        SETUPdll(nc, hfld, hhmx, href, ierr, herr, 10000, 255, 3, 255);
+        if (ierr != 0) {
+            printf("This ierr: %d herr: %s\n", ierr, herr);
+            return EXIT_FAILURE;
+        }
     }
     // Try to disable caching in REFPROP
     {
+        int ierr = 0; char herr[256];
         char hflag[256] = "Cache                                                ";
         int jFlag = 3, kFlag = -1;
         FLAGSdll(hflag, jFlag, kFlag, ierr, herr, 255, 255);
@@ -89,6 +95,7 @@ int main()
                 std::valarray<double> z(20); z = 0.0; z[std::slice(0, Ncomp, 1)] = 1.0 / Ncomp;
                 std::valarray<double> u(20); u = 0.0;
                 auto usummer = 0.0;
+                int ierr = 0; char herr[256];
                 auto tic = std::chrono::high_resolution_clock::now();
                 for (auto j = 0; j < N; ++j) {
                     FUGCOFdll(T, D_moldm3, &(z[0]), &(u[0]), ierr, herr, 255);