https://devhubby.com/thread/how-to-implement-operator-overloading-in-lua