anchor.diff:      classMirror.variables.forEach((varKey, variable) {
         if (!variable.isPrivate && !variable.isStatic) {
           var futureField = instanceMirror.getField(varKey);
  -        
  -        var onGetFutureFieldSuccess = (instanceMirrorField) {
  -          print("Got reflecteee for $varKey: ${instanceMirrorField.reflectee}");
  -          resultMap[varKey] = instanceMirrorField.reflectee;
  +
  +        var onGetFutureFieldError = (error) => completer.completeError(error);
  +
  +        var onGetFutureFieldSuccess = (mirrors.InstanceMirror instanceMirrorField) {
  +          Object reflectee = instanceMirrorField.reflectee;
  +          _log("Got reflectee for $varKey: ${reflectee}");
  +          if (isPrimative(reflectee)){
  +            resultMap[varKey] = reflectee;
  +          } else {
  +            Future<String> recursed = objectToJson(reflectee).catchError(onGetFutureFieldError);
  +            recursed.then((json) => resultMap[varKey] = json);
  +            futuresList.add(recursed);
  +          }
           };
  -        
  -        var onGetFutureFieldError = (error) => completer.complete(error);
           
           futureField.then(onGetFutureFieldSuccess, onError:onGetFutureFieldError);
           futuresList.add(futureField);
  
positive.code: Future objectToSerializable(Object object, [key=null]) {
    var completer = new Completer();
      
    if (object is num || 
        object is bool || 
        object is String || 
        object == null) {
      _serializeNative(object, completer, key);
    }
    else if (object is Map) {
  
negative.code:     // for each getter:
     classMirror.getters.forEach((getterKey, getter) {
        if (!getter.isPrivate && !getter.isStatic) {
          _log("getter: ${getter.qualifiedName}");
          var futureField = instanceMirror.getField(getterKey);
          _log("got future field: $futureField");
  
          var onGetFutureFieldError = (error) {
            _log("Error: $error");
            completer.completeError(error);
          };
  
          var onGetFutureFieldSuccess = (mirrors.InstanceMirror instanceMirrorField) {
            Object reflectee = instanceMirrorField.reflectee;
            _log("Got reflectee for $getterKey: ${reflectee}");
            if (isPrimative(reflectee)){
              resultMap[getterKey] = reflectee;
            } else {
              Future<String> recursed = objectToJson(reflectee).catchError(onGetFutureFieldError);
              recursed.then((json) => resultMap[getterKey] = json);
              futuresList.add(recursed);
            }
          };
  
          futureField.then(onGetFutureFieldSuccess, onError:onGetFutureFieldError);
          futuresList.add(futureField);
        }
  