Switch to using submodules for the core butt algorithm