more work on modularization