refactoring and implemented gps skeleton interface