separate with core, install, and uninstall