locked the forever-agent version to prevent accidental breakage after setting up really tight integration
moved agent creation logic into methods on the HttpConnection class, so that subclasses can more easily modify this behavior