implement first GenAlg version