rewrited version of genus, only depends on genmsg