gps
refactoring