anchor.diff:            ..add(encoded)
             ..close();
         } else if (request.uri.path.startsWith(recentEndpoint)) {
  -        final List<Directory> results = await collection.recent(); // TODO error handling
  +        final List<Directory> results = await collection.recent();
           final encoded = utf8.encode(jsonEncode(results));
           request.response
             ..contentLength = encoded.length
  
positive.code:         data.pipe(request.response);
        } else if (request.uri.path.startsWith(audioEndpoint)) {
          final String path = request.uri.queryParameters[pathQueryParameter];
          final data = await collection.getAudio(path); // TODO error handling
          request.response
            ..contentLength = -1
            ..statusCode = HttpStatus.ok;
  
negative.code:   }
  
    void _handleRequest(HttpRequest request) async {
      // TODO handle errors from collection calls
      try {
        if (request.uri.path.startsWith(browseEndpoint)) {
          final String path = Uri.decodeComponent(request.uri.path.substring(browseEndpoint.length));
          final List<CollectionFile> results = await collection.browse(path);
          final encoded = utf8.encode(jsonEncode(results));
          request.response
            ..contentLength = encoded.length
  