When using `table.insert(...)` like this:

```
test ={}
table.insert(test, 1)
print(test[1]) -- 1

table.insert(test, 2)
print(test[1]) -- 1

```

The expected print result is

1

1

Now when you do this:

```
local A = { b = {} }
local B = { c = { x=0 } }

function add(t, X)
  local temp = B
  temp.c = {x=X}
  table.insert(t.b, temp)
end

local a = A
add(a, 1)
print(a.b[1].c.x) -- 1

add(a, 2)
print(a.b[1].c.x) -- 2

```

The result is 

1

2

But shouldn't it be 1 and 1, too? This is my expected behavior, since I'm accessing the first element of the *inner* table `b` both times. What am I missing here?