add S2g function