anchor.diff:          });
       }
   
  -    Future<String> getter(uri) {
  +    Future getter(uri) {
           var c = new Completer<String>();
   
  +        List<int> retList = [];
  +        String retString = "";
  +
           var cli = new HttpClient();
   
           cli.getUrl(uri).then((HttpClientRequest request) {
  
positive.code: 
          if (path.startsWith(PROXY)) {
              String query = request.uri.query;
              print(request.uri);
              print(path);
              print(query);
              query = Uri.decodeComponent(query);
              Uri uri = Uri.parse(query);
              _proxyHandler(request, uri);
  
negative.code:             headers.forEach((k, v) => request.headers.set(k, v));
  
              return request.close();
  
          }).then((HttpClientResponse response) {
              //log(response.statusCode);
              //log(response.headers);
  
              if (response.headers.contentType == ContentType.BINARY ||
                      response.headers.contentType.toString() == "image/jpeg") {
                  response.listen((contents) {
                      retList.addAll(contents);
                  }, onDone: () {
                      c.complete(retList);
                  });
              } else if (response.headers.contentType == ContentType.HTML ||
                      response.headers.contentType == ContentType.TEXT ||
                      response.headers.contentType == ContentType.JSON ||
                      response.headers.contentType.toString() == "text/xml") { // TODO: hack
                  response.transform(UTF8.decoder).listen((contents) {
                      retString += contents;
                  }, onDone: () {
                      c.complete(retString);
                  });
              } else {
                  log("*** UNKNOWN CONTENT TYPE: -${response.headers.contentType.toString()}-");
                  exit(99);
              }
          });
  
  