Index: trunk/src/lua/lua_function.cc
===================================================================
--- trunk/src/lua/lua_function.cc	(revision 438)
+++ trunk/src/lua/lua_function.cc	(revision 440)
@@ -21,5 +21,5 @@
 	{
 		lua_pop( L, 1 );
-		NV_LUA_ABORT( "function_base::function_base", "not a valid path - ", a_path.to_string().c_str() );
+		NV_LUA_ABORT( "function_base::function_base", "not a valid path - ", a_path.to_string() );
 	}
 
@@ -27,5 +27,5 @@
 	{
 		lua_pop( L, 1 );
-		NV_LUA_ABORT( "function_base::function_base", "not a valid function - ", a_path.to_string().c_str() );
+		NV_LUA_ABORT( "function_base::function_base", "not a valid function - ", a_path.to_string() );
 	}
 	m_ref = luaL_ref( L, LUA_REGISTRYINDEX );
@@ -64,7 +64,7 @@
 	if ( status != 0 )
 	{
-		std::string error = lua_tostring( L, -1 );
+		string128 error( nlua_tostringview( L, -1 ) );
 		lua_pop( L, 1 );
-		NV_LUA_ABORT( "function_base::call", "call failed - ", error.c_str() );
+		NV_LUA_ABORT( "function_base::call", "call failed - ", error );
 	}
 }
Index: trunk/src/lua/lua_map_tile.cc
===================================================================
--- trunk/src/lua/lua_map_tile.cc	(revision 438)
+++ trunk/src/lua/lua_map_tile.cc	(revision 440)
@@ -16,4 +16,7 @@
 #include "nv/lua/lua_values.hh"
 #include "nv/lua/lua_raw.hh"
+
+// TODO: REMOVE
+#include <string>
 
 static const char* NLUA_MAP_TILE_METATABLE = "map_tile";
Index: trunk/src/lua/lua_path.cc
===================================================================
--- trunk/src/lua/lua_path.cc	(revision 438)
+++ trunk/src/lua/lua_path.cc	(revision 440)
@@ -74,37 +74,22 @@
 }
 
-std::string nv::lua::path::to_string() const
+string128 nv::lua::path::to_string() const
 {
-	char buffer[64];
-	char* start   = buffer;
-	char* current = buffer;
+	string128 buffer;
 	bool dot = false;
-	bool oos = false;
 	for ( const element& e : m_elements )
 	{
-		if ( current - start > 48 ) { oos = true; break; }
-		if ( dot ) *current++ = '.';
+		if ( dot ) buffer.append( "." );
 		if ( e.length == 0 )
 		{
-			*current++ = '[';
-			current += uint32_to_buffer( array_ref< char >( current, current - start ), e.value );
-			*current++ = ']';
+			buffer.append( "["_ls + e.value + "]"_ls );
 			dot = false;
 		}
 		else
 		{
-			if ( size_t(current - start) + e.length > 60 ) { oos = true; break; }
-			nvmemcpy( current, e.str, e.length );
-			current += e.length;
+			buffer.append( e.str, e.length );
 			dot = true;
 		}
 	}
-	if (oos) 
-	{ 
-		*current++ = '.';
-		*current++ = '.';
-		*current++ = '.';
-	}
-	*current++ = '\0';
-	return std::string( buffer, size_t(current - start - 1) );
+	return buffer;
 }
Index: trunk/src/lua/lua_state.cc
===================================================================
--- trunk/src/lua/lua_state.cc	(revision 438)
+++ trunk/src/lua/lua_state.cc	(revision 440)
@@ -116,5 +116,5 @@
 	if ( !p.resolve( m_state, global ) )
 	{
-		NV_LOG_ERROR( "Lua error : not a valid path - ", p.to_string().c_str() );
+		NV_LOG_ERROR( "Lua error : not a valid path - ", p.to_string() );
 		return false;
 	}
@@ -123,5 +123,5 @@
 	{
 		lua_pop( m_state, 1 );
-		NV_LOG_ERROR( "Lua error : not a valid function - ", p.to_string().c_str() );
+		NV_LOG_ERROR( "Lua error : not a valid function - ", p.to_string() );
 		return false;
 	}
@@ -212,23 +212,4 @@
 	lua_pop( m_state, 1 );
 	return shash64( result );
-}
-
-std::string lua::table_guard::get_std_string( string_view element, string_view defval /*= string_view() */ )
-{
-	lua_getfield( m_state, -1, element.data() );
-	size_t l = 0;
-	const char* str = nullptr;
-	if ( lua_type( m_state, -1 ) == LUA_TSTRING )
-	{
-		str = lua_tolstring( m_state, -1, &l );
-	}
-	else
-	{
-		l = defval.size();
-		str = defval.data();
-	}
-	std::string result( str, l );
-	lua_pop( m_state, 1 );
-	return result;
 }
 
@@ -250,4 +231,23 @@
  	lua_pop( m_state, 1 );
  	return result;
+}
+
+string128 lua::table_guard::get_string128( string_view element, string_view defval )
+{
+	lua_getfield( m_state, -1, element.data() );
+	size_t l = 0;
+	const char* str = nullptr;
+	if ( lua_type( m_state, -1 ) == LUA_TSTRING )
+	{
+		str = lua_tolstring( m_state, -1, &l );
+	}
+	else
+	{
+		l = defval.size();
+		str = defval.data();
+	}
+	string128 result( str, l );
+	lua_pop( m_state, 1 );
+	return result;
 }
 
Index: trunk/src/lua/lua_values.cc
===================================================================
--- trunk/src/lua/lua_values.cc	(revision 438)
+++ trunk/src/lua/lua_values.cc	(revision 440)
@@ -65,9 +65,4 @@
 }
 
-void nv::lua::detail::push_string  ( lua_State *L, const std::string& s )
-{
-	lua_pushlstring( L, s.c_str(), s.size() );
-}
-
 void nv::lua::detail::push_cstring ( lua_State *L, const char* s )
 {
@@ -109,11 +104,4 @@
 {
 	return lua_toboolean( L, index ) != 0;
-}
-
-std::string nv::lua::detail::to_string  ( lua_State *L, int index )
-{
-	size_t length = 0;
-	const char* result = lua_tolstring( L, index, &length );
-	return std::string( result, length );
 }
 
@@ -171,7 +159,7 @@
 }
 
-std::string nv::lua::detail::to_string  ( lua_State *L, int index, const std::string& def )
+nv::string_view nv::lua::detail::to_string_view( lua_State *L, int index, string_view def )
 {
-	return ( lua_type( L, index ) == LUA_TSTRING ? lua_tostring( L, index ) : def );
+	return ( lua_type( L, index ) == LUA_TSTRING ? nlua_tostringview( L, index ) : def );
 }
 
