fixed gi func