add underscore and refactoring