redo modularization