begin modularization