anchor.diff:        _renderUpdatedRecord(request, response);
       }
     }
  -  
  +
  +  _renderItems(response) {
  +    var r = [
  +        {"id": 1, "text": "Task 1", "status" : "inProgress"},
  +        {"id": 2, "text": "Task 2", "status" : "inProgress"}
  +    ];
  +    _render("text/json", json.stringify(r), response);
  +  }
  +
     _renderNewRecord(request, response){
  -    var s = new StringInputStream(request.inputStream);
  -    s.onData = (){
  -      var data = s.read();
  +    request.transform(new StringDecoder()).listen((data){
         print("body: ${data}");
  -      
  +
         var map = json.parse(data);
         map["id"] = new Random().nextInt(10000);
         _render("text/json", json.stringify(map), response);
  -    };    
  +    });
     }
   
     _renderUpdatedRecord(request, response){
  -    var s = new StringInputStream(request.inputStream);
  -    s.onData = (){
  -      var data = s.read();
  +    request.transform(new StringDecoder()).listen((data){
         print("BODY: ${data}");
         _render("text/json", data, response);
  -    };
  +    });
     }
   
     _render(contentType, body, response){
       response.headers.set(HttpHeaders.CONTENT_TYPE, "$contentType; charset=UTF-8");
  -    response.outputStream.writeString(body);
  -    response.outputStream.close();
  -  }
  -
  -  _items() {
  -    var r = [
  -        {"id": 1, "text": "Task 1", "status" : "inProgress"},
  -        {"id": 2, "text": "Task 2", "status" : "inProgress"}
  -    ];
  -    return json.stringify(r);
  +    response.addString(body);
  +    response.close();
     }
   }
   
  
positive.code:   StaticHandler(this.folder);
  
    onRequest(request, response) {
      var file = new File('${folder}${request.path}');
      print('${folder}${request.path}');
      file.exists().then((exists){
        if(exists){
          file.openInputStream().pipe(response.outputStream);
        } else {
          response.outputStream.close();
        }
      });
    }
  
negative.code: final PORT = 8080;
  
  void main() {
    var apiHandler = new ApiHandler();
    var staticHandler = new StaticHandler("example");
  
    HttpServer.bind(HOST, PORT).then((server){
      server.listen((req){
        var handler = apiHandler.match(req) ? apiHandler : staticHandler;
        handler.onRequest(req, req.response);
      });
    });
  }
  
  class ApiHandler {
    bool match(request) => request.uri.toString().startsWith("/api");
    
    void onRequest(request, response) {
      var uri = request.uri.toString();
      var method = request.method;
  
      print("REQUEST: ${method} ${uri}");
        
      if (uri.startsWith("/api/tasks") && method == "GET"){
        _renderItems(response);
  
      } else if (uri.startsWith("/api/tasks") && method == "POST"){
        _renderNewRecord(request, response);
  