refactoring: private methods and attributes