add metatable overload