diff --git a/deps/ox/src/ox/mc/read.cpp b/deps/ox/src/ox/mc/read.cpp
index 0ed0828a..3aba33e5 100644
--- a/deps/ox/src/ox/mc/read.cpp
+++ b/deps/ox/src/ox/mc/read.cpp
@@ -102,7 +102,7 @@ Error MetalClawReader::field(const char*, SerStr val) {
 			return OxError(MC_BUFFENDED);
 		}
 		std::size_t bytesRead = 0;
-		auto [len, _] = mc::decodeInteger<StringLength>(&m_buff[m_buffIt], m_buffLen - m_buffIt, &bytesRead);
+		len = mc::decodeInteger<StringLength>(&m_buff[m_buffIt], m_buffLen - m_buffIt, &bytesRead).value;
 		if (pass) {
 			m_buffIt += sizeof(ArrayLength);
 		}
@@ -114,8 +114,8 @@ Error MetalClawReader::field(const char*, SerStr val) {
 	if (m_fieldPresence.get(m_field)) {
 		// read the length
 		std::size_t bytesRead = 0;
-		auto [len, _] = mc::decodeInteger<StringLength>(&m_buff[m_buffIt], m_buffLen - m_buffIt, &bytesRead);
-		return len;
+		auto len = mc::decodeInteger<StringLength>(&m_buff[m_buffIt], m_buffLen - m_buffIt, &bytesRead);
+		return len.value;
 	}
 	return 0;
 }
diff --git a/deps/ox/src/ox/std/error.hpp b/deps/ox/src/ox/std/error.hpp
index 300e3f6d..1fd2112e 100644
--- a/deps/ox/src/ox/std/error.hpp
+++ b/deps/ox/src/ox/std/error.hpp
@@ -75,11 +75,11 @@ struct ValErr {
 		return value;
 	}
 
-	constexpr bool ok() const noexcept {
+	[[nodiscard]] constexpr bool ok() const noexcept {
 		return error == 0;
 	}
 
-	constexpr ox::Error get(T *val) noexcept {
+	[[nodiscard]] constexpr ox::Error get(T *val) noexcept {
 		*val = value;
 		return error;
 	}
diff --git a/deps/ox/src/ox/std/strongint.hpp b/deps/ox/src/ox/std/strongint.hpp
index 4e2101f5..7ee26108 100644
--- a/deps/ox/src/ox/std/strongint.hpp
+++ b/deps/ox/src/ox/std/strongint.hpp
@@ -28,6 +28,8 @@ class Integer: Base {
 
 		constexpr explicit Integer(T i) noexcept;
 
+		constexpr Integer(const Integer<T, Base> &i) noexcept;
+
 		constexpr Integer<T, Base> operator=(Integer<T, Base> i) noexcept;
 
 		constexpr Integer<T, Base> operator==(Integer<T, Base> i) const noexcept;
@@ -105,6 +107,10 @@ constexpr Integer<T, Base>::Integer(T i) noexcept {
 	m_i = i;
 }
 
+template<typename T, class Base>
+constexpr Integer<T, Base>::Integer(const Integer<T, Base> &i) noexcept:m_i(i.m_i) {
+}
+
 template<typename T, class Base>
 constexpr Integer<T, Base> Integer<T, Base>::operator=(Integer<T, Base> i) noexcept {
 	return Integer<T, Base>(m_i = i.m_i);