add feature and refactoring