simplify conditions
add submodules