works but converge to one module