Split the core into a thin launcher and a shared object