DNS refactor and docs