modular initialization works (not cleaned up yet)