Why does it double when I print in logs? __newindex

instead of showing me “change x16” it shows me 32x

local Data = {}
Data.__index = Data
Data._template = {}
Data.__newindex = function(t, i, v)
	rawset(Data._template, i, v)
 	print("Changement")
end

function Data.new(template)
	local self = setmetatable({}, Data)
	
	for i, v in template do
		self[i] = v
	end

	return self
end

function Data:setValue(name, value)
	self[name] = value
end

Can you please provide a use case in your script or a bit more data so I can at least start with a reproduction case ?