function Janitor.__index.Cleanup(X)if not X.CurrentlyCleaning then X.CurrentlyCleaning=nil for F,e in next,X do if F==IndicesReference then continue end if e==true then F()else local X=F[e]if X then X(F)end end X[F]=nil end local F=X[IndicesReference]if F then for X in next,F do F[X]=nil end X[IndicesReference]={}end X.CurrentlyCleaning=false end end

function Janitor.__index:Cleanup()
	if not self.CurrentlyCleaning then
		self.CurrentlyCleaning = nil
		for Object, MethodName in next, 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
			for Index in next, This do
				This[Index] = nil
			end

			self[IndicesReference] = {}
		end

		self.CurrentlyCleaning = false
	end
end
