adding&refactoring