local Class={} for _, n in ipairs({"Fire","Reload","Load"}) do Class[n]=function(self) return n end end print("class", Class.Fire({}), Class.Reload({}), Class.Load({})) local names={"Fire","Reload","Load"} local fns={} for _, name in ipairs(names) do local original = Class[name] if type(original)=="function" then fns[name]=function(self,...) return original(self,...) end end end for n,f in pairs(fns) do print(n, f({})) end