spirit new refactor