split into 3 modules, core, web and apps