use and fix the modular approach