function Janitor.Cleanup(M)if not M.CurrentlyCleaning then M.CurrentlyCleaning=nil for N,Z in pairs(M)do if N==IndicesReference then continue end if Z==true then N()else local M=N[Z]if M then M(N)end end M[N]=nil end local N=M[IndicesReference]if N then table.clear(N)M[IndicesReference]={}end M.CurrentlyCleaning=false end end

function Janitor:Cleanup()
	if not self.CurrentlyCleaning then
		self.CurrentlyCleaning = nil
		for Object, MethodName in pairs(self) do
			if Object == IndicesReference then
				continue
			end

			if MethodName == true then
				Object()
			else
				local ObjectMethod = Object[MethodName]
				if ObjectMethod then
					ObjectMethod(Object)
				end
			end

			self[Object] = nil
		end

		local This = self[IndicesReference]
		if This then
			table.clear(This)
			self[IndicesReference] = {}
		end

		self.CurrentlyCleaning = false
	end
end
