clean + modularisation
update submodules