added changes from gps tree into master branch manually