renovate and refactor structure