new way to generate with visitor
cleaning