Rewrote the whole GPS connection class