partial refactoring for core points