implement gi controller