add gi function