add FGK implementation