clean & refactoring