Do refactor