> Or once you define a metatable for an object, you can't extend it at all? A metatable is just a plain ordinary table. You can do anything to it. OTOH, you may choose to protect it from Lua code by adding __metatable=false to it.