added shrage2 alg implementation