restructure gps part, add nmea lib