treat tables the same as userdata
it's safe to leave metatable unlocked
fixed variables not yet being defined