 				}
 
 				it("first element receives single value") {
-					XCTAssertEqual(element.events, [
-                        Recorded.next(30, "a"),
-                        Recorded.completed(30)
+					XCTAssertEqual(element.events, Recorded.events([
+                        .next(30, "a"),
+                        .completed(30)
 						])
+                    )
 				}
 
 				it("second element fails with notEnabled error") {
-					XCTAssertEqual(secondElement.events, [
-                        Recorded.error(20, ActionError.notEnabled)
+					XCTAssertEqual(secondElement.events, Recorded.events([
+                        .error(20, ActionError.notEnabled)
 						])
+                    )
 				}
 
 				it("executes once") {

			describe("multiple element action") {
				sharedExamples("send array elements to elements observable") {
					it("work factory receives inputs") {
						XCTAssertEqual(inputs.events, [
							Recorded.next(10, "a"),
							Recorded.next(20, "b")
							])
					}

					it("elements observable receives generated elements") {
						XCTAssertEqual(elements.events, [
							Recorded.next(10, "a"),
							Recorded.next(10, "b"),
							Recorded.next(10, "c"),
							Recorded.next(20, "b"),
							Recorded.next(20, "c"),
							Recorded.next(20, "d")
							])
					}

					it("errors observable receives nothing") {

					bindAndExecuteTwice(action: action)
				}

                it("element receives 3 values for each execution") {
                    XCTAssertEqual(element.events, Recorded.events([
                        .next(10, "a"),
                        .next(10, "a"),
                        .next(10, "a"),
                        .completed(10),
                        .next(20, "b"),
                        .next(20, "b"),
                        .next(20, "b"),
                        .completed(20)
                        ])
                    )
                }

				it("executes twice") {
					expect(executionObservables.events.count) == 2
