add gop function