[Reviewer Andy] Issue704

Now looks sensible!  As before, tested by running live tests using both TCP and UDP.
More and more `Target` doesn't belong in this file.  Not an issue with this pull request, just some tidy up we should do at some point.