         equal(protocolType: protocolType, rows: [
             "class CarSpy: Car {",
             "",
-            "\tvar startADCount = 0",
-            "\tvar startADB: Color?",
-            "\tvar startADD: Color?",
+            "\tstruct StartAD {",
+            "\t\tlet b: Color",
+            "\t\tlet d: Color?",
+            "\t}",
+            "\tvar startAD = [StartAD]()",
             "",
             "\tfunc start(a b: Color, d: Color?) {",
-            "\t\tstartADCount += 1",
-            "\t\tstartADB = b",
-            "\t\tstartADD = d",
+            "\t\tlet item = StartAD(b: b, d: d)",
+            "\t\tstartAD.append(item)",
             "\t}",
             "",
             "}",

        equal(protocolType: protocolType, rows: [
            "class CarSpy: Car {",
            "",
            "\tvar startGeneratingProductIdCount = 0",
            "\tvar startGeneratingProductIdProductId: Color?",
            "",
            "\tfunc startGenerating(productId: Color) {",
            "\t\tstartGeneratingProductIdCount += 1",
            "\t\tstartGeneratingProductIdProductId = productId",
            "\t}",
            "",
            "}",

        equal(protocolType: protocolType, rows: [
            "class CarSpy: Car {",
            "",
            "\tstruct StartA {",
            "\t\tlet b: Color",
            "\t}",
            "\tvar startA = [StartA]()",
            "",    
            "\tfunc start(a b: Color) {",
            "\t\tlet item = StartA(b: b)",
            "\t\tstartA.append(item)",
            "\t}",
            "",
            "}",
