structural changes and refactor