More minor things
Major overhaul

Big overhaul of the codebase after a short convo on twitter with James
Moberg (cheers sir!). The discussion prompted some solid ideas and gave
me a direction to go with properly handling the fetching of dns data.