refactor address