add GFunction