optimized it again for using it as submodule