Index: trunk/src/lua/lua_map_tile.cc
===================================================================
--- trunk/src/lua/lua_map_tile.cc	(revision 440)
+++ trunk/src/lua/lua_map_tile.cc	(revision 441)
@@ -17,7 +17,4 @@
 #include "nv/lua/lua_raw.hh"
 
-// TODO: REMOVE
-#include <string>
-
 static const char* NLUA_MAP_TILE_METATABLE = "map_tile";
 
@@ -58,11 +55,10 @@
 	nv::map_area* map_area = nv::lua::detail::to_map_area( L, 3 );
 	lua_settop( L, 2 );
-	nv::string_view lts = nv::trimmed( lua_tostring( L, 1 ) );
-	std::string code( lts.data(), lts.size() );
-	std::string chars( " \r\t" );
+	nv::string_buffer code( nv::trimmed( lua_tostring( L, 1 ) ) );
+	nv::string_view chars( " \r\t" );
 	code.erase( nv::remove_if( code.begin(), code.end(),
 		[&chars] ( const char& c )
 	{
-		return chars.find( c ) != std::string::npos;
+		return chars.find( c ) != nv::string_view::npos;
 	} ), code.end() );
 
Index: trunk/src/lua/lua_raw.cc
===================================================================
--- trunk/src/lua/lua_raw.cc	(revision 440)
+++ trunk/src/lua/lua_raw.cc	(revision 441)
@@ -7,35 +7,31 @@
 #include "nv/lua/lua_raw.hh"
 
-nv::string_view nlua_typecontent( lua_State* L, int idx )
+nv::string64 nlua_typecontent( lua_State* L, int idx )
 {
 	int type = lua_type( L, idx );
 	switch ( type )
 	{
-	case LUA_TNONE          : return "NONE"; 
-	case LUA_TNIL		    : return "NIL"; 
-	case LUA_TBOOLEAN		: return lua_toboolean( L, idx ) == 0 ? "false" : "true"; 
-	//case LUA_TLIGHTUSERDATA	: return std::to_string( nv::uint64( lua_touserdata( L, idx ) ) ); 
-	//case LUA_TNUMBER		: return std::to_string( lua_tonumber( L, idx ) ); 
-	// TODO: copy to buffer?
-	case LUA_TSTRING		: return nlua_tostringview( L, idx ); 
-	case LUA_TTABLE		    : return "TABLE"; 
-	case LUA_TFUNCTION		: return "FUNCTION"; 
-//	case LUA_TUSERDATA		: return std::to_string( nv::uint64( lua_touserdata( L, idx ) ) ); 
-	case LUA_TTHREAD		: return "THREAD"; 
+	case LUA_TNONE          : return nv::string64( "NONE" );
+	case LUA_TNIL		    : return nv::string64( "NIL" );
+	case LUA_TBOOLEAN		: return nv::string64( lua_toboolean( L, idx ) == 0 ? "false" : "true" );
+	case LUA_TSTRING		: return nv::string64( nlua_tostringview( L, idx ) );
+	case LUA_TTABLE		    : return nv::string64( "TABLE" );
+	case LUA_TFUNCTION		: return nv::string64( "FUNCTION" );
+	case LUA_TTHREAD		: return nv::string64( "THREAD" );
 	default : break; 
 	}
-	static char buffer_data[64];
-	nv::array_ref< char > buffer( buffer_data, 64 );
 	if ( type == LUA_TLIGHTUSERDATA || type == LUA_TUSERDATA )
 	{
+		nv::string64 buffer;
 		size_t l = nv::uint64_to_buffer( buffer, nv::uint64( lua_touserdata( L, idx ) ) );
-		return nv::string_view( buffer.data(), l );
+		return buffer;
 	}
 	else if ( type == LUA_TNUMBER )
 	{
+		nv::string64 buffer;
 		size_t l = nv::f64_to_buffer( buffer, lua_tonumber( L, idx ) );
-		return nv::string_view( buffer.data(), l );
-	}
-	return "UNKNOWN!";
+		return buffer;
+	}
+	return nv::string64( "UNKNOWN!" );
 }
 
