refactored some letuch gen_2**.rb