local mt = {__index = function(self, key) return self.__baseClass[key] end, __call = function(self, ...) return self:new(...) end} local class = setmetatable({ __baseClass = {}, __type = "class" }, mt) function class:new(...) local arg, cls = {...}, {__baseClass = self} setmetatable(cls, ...