     */
     public mutating func encode<ItemType: CerealRepresentable>(items: [ItemType]?, forKey key: String) throws {
         guard let unwrapped = items else { return }
-        self.items[key] = try encodeItems(unwrapped)
+        self.items.append(.PairValue(.StringValue(key), try encodeItems(unwrapped)))
     }
 
     /**

    */
    public mutating func encodeIdentifyingItems(items: [IdentifyingCerealType]?, forKey key: String) throws {
        guard let unwrapped = items else { return }
        self.items[key] = try encodeIdentifyingItems(unwrapped)
    }

    // MARK: Arrays of Dictionaries

    */
    public mutating func encode(item: IdentifyingCerealType?, forKey key: String) throws {
        guard let unwrapped = item else { return }
        items.append(.PairValue(.StringValue(key), try encodeItem(unwrapped)))
    }

    // MARK: - Arrays
