function Container:getItems()
local index, containers, items = 0, {self}, {}
repeat
index = index +1
local container = containers[index]
for i = 0, container:getSize() - 1 do
local item = container:getItem(i)
items[#items +1] = item
if item:isContainer() then
containers[#containers +1] = item
end
end
until #containers <= index
return items
end