... refactoring continue ...