renaming and refactor