-- Public Methods


function MaidClass:Mark(item)
	local tof = typeof(item)
	
	if DESTRUCTORS[tof] then
		self.Trash[item] = tof
	else
		error(FORMAT_STR:format(tof), 2)
	end
end

function MaidClass:Unmark(item)
	if item then
		self.Trash[item] = nil
	else
		self.Trash = {}
	end
end

function MaidClass:Sweep()
	for item, tof in pairs(self.Trash) do
		DESTRUCTORS[tof](item)
	end
	self.Trash = {}
end

MaidClass.Destroy = MaidClass.Sweep

MaidClass.mark = MaidClass.Mark
MaidClass.unmark = MaidClass.Unmark
MaidClass.sweep = MaidClass.Sweep
MaidClass.destroy = MaidClass.Sweep
