refactoring private