rewrote recombine() and set_r() methods