few refactoring