diff --git a/service/OneService.cpp b/service/OneService.cpp
index e962fb5bb..8081d00a3 100644
--- a/service/OneService.cpp
+++ b/service/OneService.cpp
@@ -99,7 +99,7 @@ namespace ZeroTier { typedef TestEthernetTap EthernetTap; }
 #include "../controller/EmbeddedNetworkController.hpp"
 #include "../node/Node.hpp"
 // Use the virtual netcon endpoint instead of a tun/tap port driver
-#include "../src/VirtualTap.hpp"
+#include "../include/VirtualTap.h"
 namespace ZeroTier { typedef VirtualTap EthernetTap; }
 
 #else
@@ -916,14 +916,14 @@ public:
 	}
 
 #ifdef ZT_SDK
-	virtual void leave(const char *hp)
+	virtual void leave(const uint64_t hp)
 	{
-		_node->leave(Utils::hexStrToU64(hp),NULL,NULL);
+		_node->leave(hp, NULL, NULL);
 	}
 
-	virtual void join(const char *hp)
+	virtual void join(const uint64_t hp)
 	{
-		_node->join(Utils::hexStrToU64(hp),NULL,NULL);
+		_node->join(hp, NULL, NULL);
 	}
 
 	virtual std::string givenHomePath()
diff --git a/service/OneService.hpp b/service/OneService.hpp
index b04674197..23e572d08 100644
--- a/service/OneService.hpp
+++ b/service/OneService.hpp
@@ -35,7 +35,7 @@
 #ifdef ZT_SDK
 #include "../node/Node.hpp"
 // Use the virtual netcon endpoint instead of a tun/tap port driver
-#include "../src/VirtualTap.hpp"
+#include "../include/VirtualTap.h"
 namespace ZeroTier { typedef VirtualTap EthernetTap; }
 #endif
 
@@ -147,8 +147,8 @@ public:
 	virtual std::string portDeviceName(uint64_t nwid) const = 0;
 
 #ifdef ZT_SDK
-	virtual void leave(const char *hp) = 0;
-	virtual void join(const char *hp) = 0;
+	virtual void leave(const uint64_t hp) = 0;
+	virtual void join(const uint64_t hp) = 0;
 	virtual std::string givenHomePath() = 0;
 	virtual Node * getNode() = 0;
 	virtual void removeNets() = 0;