function Janitor.__index.Add(Y,c,f,V)if V then Y:Remove(V)local f=Y[IndicesReference]if not f then f={}Y[IndicesReference]=f end f[V]=c end f=f or TypeDefaults[typeof(c)]or"\068\101\115\116\114\111\121"if type(c)~="\102\117\110\099\116\105\111\110"and not c[f]then warn(string.format(METHOD_NOT_FOUND_ERROR,tostring(c),tostring(f),debug.traceback(nil,2)))end Y[c]=f return c end

function Janitor.__index:Add(Object, MethodName, Index)
	if Index then
		self:Remove(Index)

		local This = self[IndicesReference]
		if not This then
			This = {}
			self[IndicesReference] = This
		end

		This[Index] = Object
	end

	MethodName = MethodName or TypeDefaults[typeof(Object)] or "Destroy"
	if type(Object) ~= "function" and not Object[MethodName] then
		warn(string.format(METHOD_NOT_FOUND_ERROR, tostring(Object), tostring(MethodName), debug.traceback(nil, 2)))
	end

	self[Object] = MethodName
	return Object
end
