     }
     
     public init(userInfo: UserInfo) {
-        let boxIdData = userInfo["id"] as NSNumber
-        let boxCapacity = userInfo["capacity"] as Int
-        let boxTitle = userInfo["title"] as String
+        let boxData = userInfo["box"] as UserInfo
+        let boxIdData = boxData["id"] as NSNumber
+        let boxCapacity = boxData["capacity"] as Int
+        let boxTitle = boxData["title"] as String
         
         self.init(boxId: BoxId(boxIdData), capacity: boxCapacity, title: boxTitle)
     }
     
     public func userInfo() -> UserInfo {
         return [
-            "id": boxId.number,
-            "capacity": capacity,
-            "title": title
+            "box": [
+                "id": boxId.number,
+                "capacity": capacity,
+                "title": title
+            ]
         ]
     }
     

    public init(userInfo: UserInfo) {
        let boxData = userInfo["box"] as UserInfo
        let boxIdData = boxData["id"] as NSNumber
        self.boxId = BoxId(boxIdData)
        
        let itemData = userInfo["item"] as UserInfo
        let itemIdData = itemData["id"] as NSNumber
        self.itemId = ItemId(itemIdData)
        self.itemTitle = itemData["title"] as String
    }
    
    public func userInfo() -> UserInfo {

    case BoxItemRemoved = "Box Item Removed"
    
    case BoxItemDistributionFailed = "Box Item Distribution Failed"
    case BoxItemsRedistributionFailed = "Box Items Redistribution Failed"
    
    var name: String {
        return self.rawValue
