First of all, I'd like to thank you so much for this well written and easy to understand tutorial. After following this I've managed to get a great deal of work done on my first roguelike project in Lua. However, I have one problem I haven't been able to get around, and I'd like to ask your help. I'm trying to setup a constructor for my objects, so that on creation, objects will pass along a message to my debug window. The issue is that if I run self.create in a parent object, it will print the parent's name. However if I run self.create in the parent as well as the child object, I get duplicate messages. I've been unable to get a constructor to run only once, using the data in the class that I am trying to create an object of. Here is my parent object: Object = {} -- Master Class of all objectsfunction Object.new() local self = {} local id = zokEngine.ObjectListAdd(self) local name = "Object" self.getID = function() return id end self.getName = function() return name end self.create = function() zokEngine.print("Object '" .. name .. "' created with id '" .. id .. "'") end if self.step == nil then function self.step(dt) end end if self.draw == nil then function self.draw() end end return selfendAnd here is my child object Body = {}function Body.new(x, y) local self = Object.new() local name = "Body" self.x = x self.y = y self.draw = function() love.graphics.setColor(255, 255, 255, 255) love.graphics.rectangle("fill", player.x, player.y, 32, 32) end return selfendAny help would be greatly appreciated. Thank you again for the tutorial!