function new_event() return { systems = {}, compnames = {}, size = 0, } end function event_bind(event, compname, system) event.size = event.size + 1 event.systems[event.size] = system event.compnames[event.size] = compname end function fire_event(event, ...) for i=1, event.size do run_system(event.compnames[i], event.systems[i], ...) end end