Yeah context binding can be a pain.

so we can keep using `this` as a reference here if we change.
```javascript
if (this.proxy) {
  this.agent = tunnel.httpsOverHttp({
    maxSockets: this.options.maxSockets,
    proxy: {
      host: this.proxy.host || 'localhost',
      post: self.proxy.port || 3128
    }
  }).bind(this);
```
calling .bind on the function call allows you to pass the context of what (`this`) means inside that function.