anchor.diff:          // reply with the Empty() message
           replyTo.send(Empty());
           break;
  +      case Command.create_sign:
  +        // assign an id and save the sign.
  +        var sign = data;
  +        sign.id = nextSignId++;
  +        signs[sign.id] = sign;
  +        // reply with the new Sign.
  +        replyTo.send(sign);
  +        break;
  +      case Command.list_signs:
  +        // reply with a list of all signs.
  +        replyTo.send(signs.values.toList());
  +        break;
  +      case Command.get_sign:
  +        // lookup the sign.
  +        var sign = signs[data.id];
  +        // reply with the requested sign or null.
  +        replyTo.send(sign);
  +        break;
  +      case Command.delete_sign:
  +        // delete the sign.
  +        signs.remove(data.id);
  +        if (signs.isEmpty) {
  +          nextSignId = 1;
  +        }
  +        // reply with the Empty() message
  +        replyTo.send(Empty());
  +        break;
  +      case Command.set_sign_id_for_kiosk_ids:
  +        var kioskIds = data[0];
  +        var signId = data[1];
  +        if (kioskIds.isEmpty) {
  +          for (var kioskID = 1; kioskID < nextKioskId; kioskID++) {
  +            signIdsForKioskIds[kioskID] = signId;
  +          }
  +        } else {
  +          for (var kioskId in kioskIds) {
  +            signIdsForKioskIds[kioskId] = signId;
  +          }
  +        }
  +        print('$signIdsForKioskIds');
  +        // reply with the Empty() message
  +        replyTo.send(Empty());
  +        break;
  +      case Command.get_sign_id_for_kiosk_id:
  +        var reply = GetSignIdResponse();
  +		var signId = signIdsForKioskIds[data.kioskId];
  +        if (signId != null) {
  +			reply.signId = signId;		
  +		}
  +        replyTo.send(reply);
  +        break;
  +      case Command.get_sign_ids_for_kiosk_id:
  +        break;
         default:
           replyTo.send(data);
       }
  
positive.code: /// sends a message on a port, receives the response,
  /// and returns the message that was received
  Future sendReceive(SendPort port, command, msg) {
    ReceivePort response = new ReceivePort();
    port.send([command, msg, response.sendPort]);
    return response.first;
  }
  
negative.code:   delete_sign,
    set_sign_id_for_kiosk_ids,
    get_sign_id_for_kiosk_id,
    get_sign_ids_for_kiosk_id
  }
  
  // Manage all service data in an in-memory data store.
  