rearraged gps

rewritten gps to handle pause