-- New

function StringLabel.new(label)
	local newStringLabel = {}
	setmetatable(newStringLabel, StringLabel)
	
	newStringLabel._textLabel = label
	newStringLabel._textFrame = nil
	newStringLabel._characters = {}
	newStringLabel._characterLabels = {}
	newStringLabel._oldCharacterLabels = {}
	newStringLabel._lastChangedTime = 0
	newStringLabel._lastAbsolutePosition = nil
	newStringLabel._lastAbsoluteSize = nil
	newStringLabel._lastAbsolutePositionUpdateTime = 0
	newStringLabel._lastAbsoluteSizeUpdateTime = 0

	setup(newStringLabel)
	
	if label.Text ~= "" then
		if label.AbsoluteSize.X > 0 and label.AbsoluteSize.Y > 0 then
			update(newStringLabel)
		else
			delay(1, function()
				update(newStringLabel)
			end)
		end
	end
	
	return newStringLabel
end

return StringLabel
