added GPLv3
add gps()