highlight and spoiler refactoring2