refactor structure.