many useful changes