returns gp object