added __metatable -protection