Refactor GPS, add reflection