diff --git a/src/musikcube/cursespp/SchemaOverlay.cpp b/src/musikcube/cursespp/SchemaOverlay.cpp
index 07e4b522e..869add770 100644
--- a/src/musikcube/cursespp/SchemaOverlay.cpp
+++ b/src/musikcube/cursespp/SchemaOverlay.cpp
@@ -1,3 +1,39 @@
+//////////////////////////////////////////////////////////////////////////////
+//
+// Copyright (c) 2004-2019 musikcube team
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+//    * Redistributions of source code must retain the above copyright notice,
+//      this list of conditions and the following disclaimer.
+//
+//    * Redistributions in binary form must reproduce the above copyright
+//      notice, this list of conditions and the following disclaimer in the
+//      documentation and/or other materials provided with the distribution.
+//
+//    * Neither the name of the author nor the names of other contributors may
+//      be used to endorse or promote products derived from this software
+//      without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//
+//////////////////////////////////////////////////////////////////////////////
+
+#include <stdafx.h>
+
 #include <cursespp/SchemaOverlay.h>
 
 #include <core/i18n/Locale.h>
@@ -15,6 +51,7 @@
 #include <cursespp/Text.h>
 
 #include <sstream>
+#include <iomanip>
 
 using namespace musik::core::sdk;
 using namespace musik::core::i18n;
diff --git a/src/musikcube/musikcube.vcxproj b/src/musikcube/musikcube.vcxproj
index dfa1d1ddb..45541fc71 100755
--- a/src/musikcube/musikcube.vcxproj
+++ b/src/musikcube/musikcube.vcxproj
@@ -315,6 +315,7 @@ xcopy "$(SolutionDir)src\3rdparty\bin\win\font\*.ttf" "$(TargetDir)fonts\" /Y /e
     <ClCompile Include="cursespp\ListWindow.cpp" />
     <ClCompile Include="cursespp\MultiLineEntry.cpp" />
     <ClCompile Include="cursespp\OverlayStack.cpp" />
+    <ClCompile Include="cursespp\SchemaOverlay.cpp" />
     <ClCompile Include="cursespp\Screen.cpp" />
     <ClCompile Include="cursespp\ScrollableWindow.cpp" />
     <ClCompile Include="cursespp\ScrollAdapterBase.cpp" />
@@ -399,8 +400,10 @@ xcopy "$(SolutionDir)src\3rdparty\bin\win\font\*.ttf" "$(TargetDir)fonts\" /Y /e
     <ClInclude Include="cursespp\cursespp\ListOverlay.h" />
     <ClInclude Include="cursespp\cursespp\ListWindow.h" />
     <ClInclude Include="cursespp\cursespp\MultiLineEntry.h" />
+    <ClInclude Include="cursespp\cursespp\NumberValidator.h" />
     <ClInclude Include="cursespp\cursespp\OverlayBase.h" />
     <ClInclude Include="cursespp\cursespp\OverlayStack.h" />
+    <ClInclude Include="cursespp\cursespp\SchemaOverlay.h" />
     <ClInclude Include="cursespp\cursespp\Screen.h" />
     <ClInclude Include="cursespp\cursespp\ScrollableWindow.h" />
     <ClInclude Include="cursespp\cursespp\ScrollAdapterBase.h" />
diff --git a/src/musikcube/musikcube.vcxproj.filters b/src/musikcube/musikcube.vcxproj.filters
index a19d6c23d..2c47b6efe 100755
--- a/src/musikcube/musikcube.vcxproj.filters
+++ b/src/musikcube/musikcube.vcxproj.filters
@@ -186,6 +186,9 @@
     <ClCompile Include="app\overlay\TrackOverlays.cpp">
       <Filter>app\overlay</Filter>
     </ClCompile>
+    <ClCompile Include="cursespp\SchemaOverlay.cpp">
+      <Filter>cursespp</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="stdafx.h" />
@@ -424,6 +427,12 @@
     <ClInclude Include="app\overlay\TrackOverlays.h">
       <Filter>app\overlay</Filter>
     </ClInclude>
+    <ClInclude Include="cursespp\cursespp\NumberValidator.h">
+      <Filter>cursespp\include</Filter>
+    </ClInclude>
+    <ClInclude Include="cursespp\cursespp\SchemaOverlay.h">
+      <Filter>cursespp\include</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <Filter Include="cursespp">