diff --git a/classes/log/store.php b/classes/log/store.php
index a4984965d1063750121334deac62903a7a598015..52c9e2bfa49c83d75de7af28a9dd2d2254d7f759 100644
--- a/classes/log/store.php
+++ b/classes/log/store.php
@@ -95,22 +95,19 @@ class store extends php_obj implements log_writer {
         $translatorcontroller = new translator_controller();
 
         // Emits events to other APIs.
-        foreach ($events as $event) {
-            $event = (array) $event;
-            $this->error_log('');
-            $this->error_log_value('event', $event);
-            $moodleevent = $moodlecontroller->createEvent($event);
-            if (is_null($moodleevent)) {
-                continue;
-            }
-            $this->error_log_value('moodleevent', $moodleevent);
-            $translatorevents = $translatorcontroller->createEvents($moodleevent);
-            $this->error_log_value('translatorevents', $translatorevents);
-            foreach ($translatorevents as $index => $translatorevent) {
-                $xapievent = $xapicontroller->createEvent($translatorevent);
-                $this->error_log_value('xapievent', $xapievent);
-            }
+        foreach ($events as $index => $event) {
+            $events[$index] = (array) $event;
         }
+
+        $this->error_log('');
+        $this->error_log_value('events', $events);
+        $moodleevents = $moodlecontroller->createEvents($events);
+        $this->error_log_value('moodleevent', $moodleevents);
+        $translatorevents = $translatorcontroller->createEvents($moodleevents);
+        $this->error_log_value('translatorevents', $translatorevents);
+        $xapievents = $xapicontroller->createEvents($translatorevents);
+        $this->error_log_value('xapievents', $xapievents);
+
     }
 
     private function error_log_value($key, $value) {
diff --git a/tests/TestCase.php b/tests/TestCase.php
index 78b0d3940ce0049a91b4a9f6423529ec179b87bb..94c58c53734e3f94ba971529adaf678b75f43edb 100644
--- a/tests/TestCase.php
+++ b/tests/TestCase.php
@@ -29,20 +29,22 @@ abstract class TestCase extends PhpUnitTestCase {
     public function testCreateEvent() {
         $input = $this->constructInput();
 
-        $moodle_event = $this->moodle_controller->createEvent($input);
-        $this->assertTrue($moodle_event != null, 'Check that the event exists in the expander controller.');
+        $moodle_events = $this->moodle_controller->createEvents([$input]);
+        $this->assertNotNull($moodle_events, 'Check that the event exists in the expander controller.');
 
-        $translator_event = $this->translator_controller->createEvent($moodle_event);
-        $this->assertTrue($translator_event != null, 'Check that the event exists in the translator controller.');
+        $translator_events = $this->translator_controller->createEvents($moodle_events);
+        $this->assertNotNull($translator_events, 'Check that the event exists in the translator controller.');
 
-        $xapi_event = $this->xapi_controller->createEvent($translator_event);
-        $this->assertTrue($xapi_event != null, 'Check that the event exists in the emitter controller.');
+        $xapi_events = $this->xapi_controller->createEvents($translator_events);
+        $this->assertNotNull($xapi_events, 'Check that the event exists in the emitter controller.');
 
-        $this->assertOutput($input, $xapi_event);
+        $this->assertOutput($input, $xapi_events);
     }
 
     protected function assertOutput($input, $output) {
-        $this->assertValidXapiStatement((new TinCanStatement($output))->asVersion('1.0.0'));
+        foreach ($output as $outputpart) {
+            $this->assertValidXapiStatement((new TinCanStatement($outputpart))->asVersion('1.0.0'));
+        }
     }
 
     protected function assertValidXapiStatement($output) {