anchor.diff:    "Function": "any"
   };
   
  -class _DualStringBuffer {
  +class _ClassStringBuffer {
  +  final String name;
  +  
     StringBuffer prefix = new StringBuffer();
  +  
  +  StringBuffer variables = new StringBuffer();
  +  StringBuffer constructor = new StringBuffer();
     StringBuffer content = new StringBuffer();
     
  -  _DualStringBuffer();
  +  _ClassStringBuffer(this.name);
     
     writelnPrefix(String text) => prefix.writeln(text);
     
  +  writelnVariables(String text) => variables.writeln(text);
  +  writelnConstructor(String text) => constructor.writeln(text);
     writeln(String text) => content.writeln(text);
     
     String toString() {
  -    if (prefix.isEmpty) {
  -      return content.toString();
  +    StringBuffer output = new StringBuffer();
  +    
  +    if (!prefix.isEmpty) {
  +      output.writeln(prefix);
       }
       
  -    return "${prefix}\n\n${content}";
  +    output.write("\n\tclass $name {");
  +    
  +    if (!variables.isEmpty) {
  +      output.write("\n$variables");
  +    }
  +    
  +    if (!constructor.isEmpty) {
  +      output.write("\n$constructor");
  +    }
  +    
  +    if (!content.isEmpty) {
  +      output.write("\n$content");
  +    }
  +    
  +    output.write("\t}");
  +    return output.toString();
     }
   }
   
  
positive.code:     
    StringBuffer _buffer;
    
    _DualStringBuffer _classBuffer;
    String _className;
    
    Map<dynamic, String> _types; 
    
  
negative.code:   }
    
    startClass(Map<String, dynamic> data) {
      _classBuffer = new _ClassStringBuffer(data["name"]);
    }
    
    stopClass() {    
      _buffer.writeln(_classBuffer);
      _classBuffer = null;
    }
    
    addClassConstructor(Map<String, dynamic> data, List<Parameter> parameters) {
      _classBuffer.writelnConstructor("\t\tconstructor(${_handleParams(parameters)});");
    }
    
    addClassStaticFunction(Map<String, dynamic> data, List<Parameter> parameters, String returnType) {
      var name = data["name"].contains(_classBuffer.name + ".") ?
        (data["name"] as String).substring(_classBuffer.name.length + 1) :
        data["name"];
      final str = _makeFunction(data, parameters, returnType, name); 
      _classBuffer.writelnConstructor("\t\tstatic $str");
    }
    
    addClassFunction(Map<String, dynamic> data, List<Parameter> parameters, String returnType) {
  