The main problem with metatable OOP is a typechecking… Its nearly impossible to be implemented properly here so consider using pointer OOP