diff --git a/tests/MyGame/Example2/Monster.lua b/tests/MyGame/Example2/Monster.lua
index 347b5db..9c33904 100644
--- a/tests/MyGame/Example2/Monster.lua
+++ b/tests/MyGame/Example2/Monster.lua
@@ -1,27 +1,36 @@
--- automatically generated by the FlatBuffers compiler, do not modify
+--[[ MyGame.Example2.Monster
 
--- namespace: Example2
+  Automatically generated by the FlatBuffers compiler, do not modify.
+  Or modify. I'm a message, not a cop.
+
+  flatc version: 2.0.6
+
+  Declared by  : //monster_test.fbs
+  Rooting type : MyGame.Example.Monster (//monster_test.fbs)
+
+--]]
 
 local flatbuffers = require('flatbuffers')
 
-local Monster = {} -- the module
-local Monster_mt = {} -- the class metatable
+local Monster = {}
+local mt = {}
 
 function Monster.New()
-    local o = {}
-    setmetatable(o, {__index = Monster_mt})
-    return o
+  local o = {}
+  setmetatable(o, {__index = mt})
+  return o
 end
-function Monster.GetRootAsMonster(buf, offset)
-    local n = flatbuffers.N.UOffsetT:Unpack(buf, offset)
-    local o = Monster.New()
-    o:Init(buf, n + offset)
-    return o
-end
-function Monster_mt:Init(buf, pos)
-    self.view = flatbuffers.view.New(buf, pos)
-end
-function Monster.Start(builder) builder:StartObject(0) end
-function Monster.End(builder) return builder:EndObject() end
 
-return Monster -- return the module
\ No newline at end of file
+function mt:Init(buf, pos)
+  self.view = flatbuffers.view.New(buf, pos)
+end
+
+function Monster.Start(builder)
+  builder:StartObject(0)
+end
+
+function Monster.End(builder)
+  return builder:EndObject()
+end
+
+return Monster
\ No newline at end of file
