another attempt to decouple with a shared submodule