Index: /trunk/nv/core/common.hh
===================================================================
--- /trunk/nv/core/common.hh	(revision 368)
+++ /trunk/nv/core/common.hh	(revision 369)
@@ -125,10 +125,5 @@
 #endif
 
-#include <typeinfo>
-#include <iterator>
-#include <cstddef>
-#include <cstdint>
 #include <cassert>
-//#include <nv/core/logging.hh>
 
 #define NV_STRINGIZE_DETAIL(x) #x
@@ -184,27 +179,38 @@
 
 	// Typedefs for fixed size types.
-	typedef int8_t  sint8;
-	typedef int16_t sint16;
-	typedef int32_t sint32;
-	typedef int64_t sint64;
-
-	typedef uint8_t  uint8;
-	typedef uint16_t uint16;
-	typedef uint32_t uint32;
-	typedef uint64_t uint64;
-
-	typedef unsigned char  char8;
-	typedef unsigned short char16;
-	typedef unsigned long  char32;
-
-	typedef float  f32;
-	typedef double f64;
-
-	typedef uint64 uid;
+	typedef signed   char      sint8;
+	typedef signed   short     sint16;
+	typedef signed   int       sint32;
+
+	typedef unsigned char      uint8;
+	typedef unsigned short     uint16;
+	typedef unsigned int       uint32;
+
+#if NV_COMPILER == NV_MSVC
+	typedef signed   __int64   sint64;
+	typedef unsigned __int64   uint64;
+#else
+	typedef signed   long long sint64;
+	typedef unsigned long long uint64;
+#endif
+	typedef unsigned char      uchar8;
+	typedef unsigned short     uchar16;
+	typedef unsigned int       uchar32;
+
+	typedef signed char        schar8;
+	typedef signed short       schar16;
+	typedef signed long        schar32;
+
+	typedef float              f32;
+	typedef double             f64;
+
+	typedef uint64             uid;
 
 	struct empty_type {};
 
+	template < typename T >
+	class empty_base_class {};
+
 	template < int a, int b, int c, int d >
-
 	struct four_cc
 	{
@@ -254,3 +260,17 @@
 }
 
+static_assert( sizeof( nv::sint8 ) == 1, "sint8 size isn't 1 bytes" );
+static_assert( sizeof( nv::sint16 ) == 2, "sint16 size isn't 2 bytes" );
+static_assert( sizeof( nv::sint32 ) == 4, "sint32 size isn't 4 bytes" );
+static_assert( sizeof( nv::sint64 ) == 8, "sint64 size isn't 8 bytes" );
+
+static_assert( sizeof( nv::uint8 ) == 1, "uint8 size isn't 1 byte" );
+static_assert( sizeof( nv::uint16 ) == 2, "uint16 size isn't 2 bytes" );
+static_assert( sizeof( nv::uint32 ) == 4, "uint32 size isn't 4 bytes" );
+static_assert( sizeof( nv::uint64 ) == 8, "uint64 size isn't 8 bytes" );
+
+static_assert( sizeof( nv::f32 ) == 4, "float32 size isn't 4 bytes" );
+static_assert( sizeof( nv::f64 ) == 8, "float64 size isn't 8 bytes" );
+
+
 #endif // NV_CORE_COMMON_HH
Index: /trunk/nv/core/io_event.hh
===================================================================
--- /trunk/nv/core/io_event.hh	(revision 368)
+++ /trunk/nv/core/io_event.hh	(revision 369)
@@ -46,5 +46,5 @@
 	{
 		/// Input event ASCII code
-		char8 ascii;
+		uchar8 ascii;
 
 		/// Input event local code
Index: /trunk/nv/core/property_store.hh
===================================================================
--- /trunk/nv/core/property_store.hh	(revision 368)
+++ /trunk/nv/core/property_store.hh	(revision 369)
@@ -15,5 +15,5 @@
 
 #include <nv/core/common.hh>
-#include <nv/core/handle.hh>
+#include <nv/stl/handle.hh>
 
 namespace nv
Index: /trunk/nv/stl/cstring_store.hh
===================================================================
--- /trunk/nv/stl/cstring_store.hh	(revision 368)
+++ /trunk/nv/stl/cstring_store.hh	(revision 369)
@@ -15,5 +15,5 @@
 
 #include <nv/core/common.hh>
-#include <nv/core/array.hh>
+#include <nv/stl/array.hh>
 #include <unordered_map>
 #include <cstring>
Index: /trunk/nv/stl/memory.hh
===================================================================
--- /trunk/nv/stl/memory.hh	(revision 368)
+++ /trunk/nv/stl/memory.hh	(revision 369)
@@ -24,7 +24,4 @@
 	namespace detail
 	{
-		template < typename T > 
-		class empty_base_class {};
-
 		template < typename PARENT, typename T, bool CONST, typename BASE = empty_base_class<PARENT> >
 		class pointer_iterators {};
Index: /trunk/src/curses/curses_terminal.cc
===================================================================
--- /trunk/src/curses/curses_terminal.cc	(revision 368)
+++ /trunk/src/curses/curses_terminal.cc	(revision 369)
@@ -108,5 +108,5 @@
 	if ( result >= 32 && result < 128 )
 	{
-		kevent.key.ascii = static_cast<nv::char8>(result);
+		kevent.key.ascii = static_cast<nv::uchar8>(result);
 	}
 
Index: /trunk/src/lua/lua_glm.cc
===================================================================
--- /trunk/src/lua/lua_glm.cc	(revision 368)
+++ /trunk/src/lua/lua_glm.cc	(revision 369)
@@ -360,21 +360,21 @@
 { 
 	for (size_t i = 0; i < 256; ++i ) nlua_swizzel_lookup[i] = 255;
-	using nv::char8;
-	nlua_swizzel_lookup[char8( 'x' )] = 0;
-	nlua_swizzel_lookup[char8( 'r' )] = 0;
-	nlua_swizzel_lookup[char8( 's' )] = 0;
-	nlua_swizzel_lookup[char8( '0' )] = 0;
-	nlua_swizzel_lookup[char8( 'y' )] = 1;
-	nlua_swizzel_lookup[char8( 'g' )] = 1;
-	nlua_swizzel_lookup[char8( 't' )] = 0;
-	nlua_swizzel_lookup[char8( '1' )] = 1;
-	nlua_swizzel_lookup[char8( 'z' )] = 2;
-	nlua_swizzel_lookup[char8( 'b' )] = 2;
-	nlua_swizzel_lookup[char8( 'u' )] = 0;
-	nlua_swizzel_lookup[char8( '2' )] = 2;
-	nlua_swizzel_lookup[char8( 'w' )] = 3;
-	nlua_swizzel_lookup[char8( 'a' )] = 3;
-	nlua_swizzel_lookup[char8( 'v' )] = 0;
-	nlua_swizzel_lookup[char8( '3' )] = 3;
+	using nv::uchar8;
+	nlua_swizzel_lookup[uchar8( 'x' )] = 0;
+	nlua_swizzel_lookup[uchar8( 'r' )] = 0;
+	nlua_swizzel_lookup[uchar8( 's' )] = 0;
+	nlua_swizzel_lookup[uchar8( '0' )] = 0;
+	nlua_swizzel_lookup[uchar8( 'y' )] = 1;
+	nlua_swizzel_lookup[uchar8( 'g' )] = 1;
+	nlua_swizzel_lookup[uchar8( 't' )] = 0;
+	nlua_swizzel_lookup[uchar8( '1' )] = 1;
+	nlua_swizzel_lookup[uchar8( 'z' )] = 2;
+	nlua_swizzel_lookup[uchar8( 'b' )] = 2;
+	nlua_swizzel_lookup[uchar8( 'u' )] = 0;
+	nlua_swizzel_lookup[uchar8( '2' )] = 2;
+	nlua_swizzel_lookup[uchar8( 'w' )] = 3;
+	nlua_swizzel_lookup[uchar8( 'a' )] = 3;
+	nlua_swizzel_lookup[uchar8( 'v' )] = 0;
+	nlua_swizzel_lookup[uchar8( '3' )] = 3;
 	int stack = lua_gettop( L );
 
Index: /trunk/src/lua/lua_map_tile.cc
===================================================================
--- /trunk/src/lua/lua_map_tile.cc	(revision 368)
+++ /trunk/src/lua/lua_map_tile.cc	(revision 369)
@@ -20,8 +20,8 @@
 struct map_tile
 {
-	nv::uint8* data;
-	nv::char8* ascii;
-	nv::uint16 size_x;
-	nv::uint16 size_y;
+	nv::uint8*  data;
+	nv::uchar8* ascii;
+	nv::uint16  size_x;
+	nv::uint16  size_y;
 };
 
@@ -66,5 +66,5 @@
 	}
 	tile.data  = new nv::uint8[ tile.size_x * tile.size_y ];
-	tile.ascii = ( ascii ? new nv::char8[ tile.size_x * tile.size_y ] : nullptr );
+	tile.ascii = ( ascii ? new nv::uchar8[ tile.size_x * tile.size_y ] : nullptr );
 
 	nv::uint8 translation[256] = { 0 };
@@ -89,5 +89,5 @@
 		for ( nv::uint16 row = 0; row < tile.size_y; row++ )
 		{
-			nv::char8 gylph = (nv::char8)code[ row * ( tile.size_x + 1 ) + line ];
+			nv::uchar8 gylph = (nv::uchar8)code[ row * ( tile.size_x + 1 ) + line ];
 			// TODO: check for errors
 			tile.data[ row * tile.size_x + line ] = translation[ gylph ];
@@ -110,5 +110,5 @@
 	if ( old_tile->ascii )
 	{
-		new_tile->ascii = new nv::char8[ size ];
+		new_tile->ascii = new nv::uchar8[ size ];
 	}
 	std::copy( old_tile->data, old_tile->data + size, new_tile->data );
Index: /trunk/src/sdl/sdl_input.cc
===================================================================
--- /trunk/src/sdl/sdl_input.cc	(revision 368)
+++ /trunk/src/sdl/sdl_input.cc	(revision 369)
@@ -30,5 +30,5 @@
 	if (ucode >= 32 && ucode < 128 )
 	{
-		kevent.key.ascii = static_cast<char8>( ucode );
+		kevent.key.ascii = static_cast<uchar8>( ucode );
 		if (ucode >= 'a' && ucode <= 'z')
 		{
@@ -36,5 +36,5 @@
 			int capslock = !!(ke.keysym.mod & KMOD_CAPS);
 			if ((shifted ^ capslock) != 0) {
-				kevent.key.ascii = (char8)SDL_toupper((int)ucode);
+				kevent.key.ascii = (uchar8)SDL_toupper((int)ucode);
 			}
 		}
