diff --git a/MSVC/opendht.vcxproj b/MSVC/opendht.vcxproj
index 368b6ae916aa9fb19b8ebcf470fcf354c0c329ea..ce94bdd53b05ec1e9342dda49cbe5879aa791fb3 100644
--- a/MSVC/opendht.vcxproj
+++ b/MSVC/opendht.vcxproj
@@ -57,6 +57,9 @@
     <ClInclude Include="..\include\opendht\securedht.h" />
     <ClInclude Include="..\include\opendht\utils.h" />
     <ClInclude Include="..\include\opendht\value.h" />
+    <ClInclude Include="..\src\listener.h" />
+    <ClInclude Include="..\src\search.h" />
+    <ClInclude Include="..\src\storage.h" />
   </ItemGroup>
   <PropertyGroup Label="Globals">
     <ProjectGuid>{711397CE-E5D5-467D-9457-8716C047E50C}</ProjectGuid>
diff --git a/MSVC/opendht.vcxproj.filters b/MSVC/opendht.vcxproj.filters
index a2e97035e8cef7bd1eda488c792ffabccb09b500..3cec5eab0ec8c118e2eb63498032d42ae4eeaf14 100644
--- a/MSVC/opendht.vcxproj.filters
+++ b/MSVC/opendht.vcxproj.filters
@@ -1,43 +1,132 @@
 <?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
-    <ClCompile Include="..\src\callbacks.cpp" />
-    <ClCompile Include="..\src\crypto.cpp" />
-    <ClCompile Include="..\src\default_types.cpp" />
-    <ClCompile Include="..\src\dht.cpp" />
-    <ClCompile Include="..\src\dhtrunner.cpp" />
-    <ClCompile Include="..\src\indexation\pht.cpp" />
-    <ClCompile Include="..\src\infohash.cpp" />
-    <ClCompile Include="..\src\log.cpp" />
-    <ClCompile Include="..\src\network_engine.cpp" />
-    <ClCompile Include="..\src\node.cpp" />
-    <ClCompile Include="..\src\node_cache.cpp" />
-    <ClCompile Include="..\src\routing_table.cpp" />
-    <ClCompile Include="..\src\securedht.cpp" />
-    <ClCompile Include="..\src\utils.cpp" />
-    <ClCompile Include="..\src\value.cpp" />
+    <ClCompile Include="..\src\callbacks.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\crypto.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\default_types.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\dht.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\dhtrunner.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\infohash.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\log.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\network_engine.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\node.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\node_cache.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\indexation\pht.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\routing_table.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\securedht.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\utils.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="..\src\value.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\include\opendht.h" />
-    <ClInclude Include="..\include\opendht\callbacks.h" />
-    <ClInclude Include="..\include\opendht\crypto.h" />
-    <ClInclude Include="..\include\opendht\default_types.h" />
-    <ClInclude Include="..\include\opendht\dht.h" />
-    <ClInclude Include="..\include\opendht\dhtrunner.h" />
-    <ClInclude Include="..\include\opendht\indexation\pht.h" />
-    <ClInclude Include="..\include\opendht\infohash.h" />
-    <ClInclude Include="..\include\opendht\log.h" />
-    <ClInclude Include="..\include\opendht\log_enable.h" />
-    <ClInclude Include="..\include\opendht\network_engine.h" />
-    <ClInclude Include="..\include\opendht\node.h" />
-    <ClInclude Include="..\include\opendht\node_cache.h" />
-    <ClInclude Include="..\include\opendht\rate_limiter.h" />
-    <ClInclude Include="..\include\opendht\request.h" />
-    <ClInclude Include="..\include\opendht\rng.h" />
-    <ClInclude Include="..\include\opendht\routing_table.h" />
-    <ClInclude Include="..\include\opendht\scheduler.h" />
-    <ClInclude Include="..\include\opendht\securedht.h" />
-    <ClInclude Include="..\include\opendht\utils.h" />
-    <ClInclude Include="..\include\opendht\value.h" />
+    <ClInclude Include="..\include\opendht\callbacks.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\crypto.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\default_types.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\dht.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\dhtrunner.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\infohash.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\src\listener.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\log.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\log_enable.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\network_engine.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\node.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\node_cache.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\indexation\pht.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\rate_limiter.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\request.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\rng.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\routing_table.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\scheduler.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\src\search.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\securedht.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\src\storage.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\utils.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="..\include\opendht\value.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{be73d179-6cf2-4c05-8d91-53c8499a7134}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{d1ab5bfe-3ab1-45ee-9324-b4b071887668}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
 </Project>
\ No newline at end of file