improvements on progress message and modularization