https://devhubby.com/thread/what-is-the-correct-way-to-represent-2d-vectors-in