modularisation into 5 modules