Better way to make events happen in sequence

?

local EventsList = {
	[1] = {
		func = function()
			print("do stuff")
		end,
		waittime = 5
	},
	[2] = {
		func = function()
			print("hi")
		end,
		waittime = 5
	}
}

for i = 1, #EventsList do
	EventsList[i].func()
	task.wait(EventsList[i]["waittime"] or nil)
end