Refactor core: private methods