this is still problematic because the order of the modules is not strict, so you might process `lang/foo` before `foo`.