Adding dns update functionality. As always will probably need more refactoring and definately more unit test work