refactoring and cleaning only