diff --git a/benchmarks/msgq/1.0/IBenchmarkMsgQ.hal b/benchmarks/msgq/1.0/IBenchmarkMsgQ.hal
index 234865e..a3ed72b 100644
--- a/benchmarks/msgq/1.0/IBenchmarkMsgQ.hal
+++ b/benchmarks/msgq/1.0/IBenchmarkMsgQ.hal
@@ -17,27 +17,8 @@
 package android.hardware.benchmarks.msgq@1.0;
 
 interface IBenchmarkMsgQ {
-
-  struct shm_t {
-    uint32_t fdIndex;
-    uint32_t offset;
-    uint32_t extent;
-  };
-  struct WireGrantorDescriptor {
-    uint32_t flags;
-    shm_t shm;
-  };
-
-  struct WireMQDescriptor {
-    vec<WireGrantorDescriptor> grantors;
-    handle mq_handle;
-    uint32_t quantum;
-    uint32_t nQuanta;
-    uint32_t flags;
-  };
-
-  ConfigureClientInbox() generates ( WireMQDescriptor mq_desc_in );
-  ConfigureClientOutbox() generates ( WireMQDescriptor mq_desc_out );
+  ConfigureClientInbox() generates (int32_t ret, MQDescriptor mq_desc_in );
+  ConfigureClientOutbox() generates ( int32_t ret, MQDescriptor mq_desc_out );
   RequestWrite (int32_t count) generates (int32_t ret);
   RequestRead(int32_t count) generates (int32_t ret);
   BenchmarkPingPong(uint32_t numIter);
diff --git a/tests/baz/1.0/IBase.hal b/tests/baz/1.0/IBase.hal
index 51251c1..ca5f2aa 100644
--- a/tests/baz/1.0/IBase.hal
+++ b/tests/baz/1.0/IBase.hal
@@ -28,4 +28,6 @@
     someBoolVectorMethod(vec<bool> x) generates (vec<bool> y);
 
     someOtherBaseMethod(Foo foo) generates (Foo result);
+    someMethodWithFooArrays(Foo[2] fooInput) generates (Foo[2] fooOutput);
+    someMethodWithFooVectors(vec<Foo> fooInput) generates (vec<Foo> fooOutput);
 };
diff --git a/tests/msgq/1.0/ITestMsgQ.hal b/tests/msgq/1.0/ITestMsgQ.hal
index caaa154..1aeb26e 100644
--- a/tests/msgq/1.0/ITestMsgQ.hal
+++ b/tests/msgq/1.0/ITestMsgQ.hal
@@ -18,26 +18,7 @@
 
 interface ITestMsgQ {
 
-  struct shm_t {
-    uint32_t fdIndex;
-    uint32_t offset;
-    uint32_t extent;
-  };
-  struct WireGrantorDescriptor {
-    uint32_t flags;
-    shm_t shm;
-  };
-
-  struct WireMQDescriptor {
-    vec<WireGrantorDescriptor> grantors;
-    handle mq_handle;
-    uint32_t quantum;
-    uint32_t nQuanta;
-    uint32_t flags;
-  };
-
-
-  configure() generates (int32_t ret, WireMQDescriptor mq_desc);
+  configure() generates (int32_t ret, MQDescriptor mq_desc);
   requestWrite (int32_t count) generates (int32_t ret);
   requestRead(int32_t count) generates (int32_t ret);
 
