Added Vector2D equals and hash