diff --git a/src/dynamic-import/empty-args-early-error.case b/src/dynamic-import/assignment-expr-not-optional.case
similarity index 88%
rename from src/dynamic-import/empty-args-early-error.case
rename to src/dynamic-import/assignment-expr-not-optional.case
index 20f6ffc490c8b8247dd2b1dbe9ca7621425c023d..e10f5986a042ce4d7b9e0af545a22f70d36b0aac 100644
--- a/src/dynamic-import/empty-args-early-error.case
+++ b/src/dynamic-import/assignment-expr-not-optional.case
@@ -6,8 +6,7 @@ desc: It's a SyntaxError if AssignmentExpression is omitted
 template: syntax/invalid
 info: |
   ImportCall :
-      import()
-
+      import( AssignmentExpression[+In, ?Yield] )
 ---*/
 //- import
 import()
diff --git a/src/dynamic-import/catch/nested-do-while.template b/src/dynamic-import/catch/nested-do-while.template
index 6ef9602ecb5da941eb48a49ce2e5aa24bc9b018b..ffda5199d9712a880691ad1f27d4ae83272099ad 100644
--- a/src/dynamic-import/catch/nested-do-while.template
+++ b/src/dynamic-import/catch/nested-do-while.template
@@ -3,7 +3,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 path: language/module-code/dynamic-import/catch/nested-do-while-
-name: nested do syntax
+name: nested do while syntax
 esid: sec-import-call-runtime-semantics-evaluation
 info: |
   ImportCall :
diff --git a/src/dynamic-import/catch/nested-do.template b/src/dynamic-import/catch/nested-do.template
deleted file mode 100644
index 17cfd74715f00506661ded2c0dcc933928ade727..0000000000000000000000000000000000000000
--- a/src/dynamic-import/catch/nested-do.template
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2018 Rick Waldron. All rights reserved.
-// Copyright (C) 2018 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-path: language/module-code/dynamic-import/catch/nested-do-import-catch-
-name: nested do
-esid: sec-import-call-runtime-semantics-evaluation
-info: |
-  ImportCall :
-      import( AssignmentExpression )
-
-  1. Let referencingScriptOrModule be ! GetActiveScriptOrModule().
-  2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null).
-  3. Let argRef be the result of evaluating AssignmentExpression.
-  4. Let specifier be ? GetValue(argRef).
-  5. Let promiseCapability be ! NewPromiseCapability(%Promise%).
-  6. Let specifierString be ToString(specifier).
-  7. IfAbruptRejectPromise(specifierString, promiseCapability).
-  8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability).
-  9. Return promiseCapability.[[Promise]].
-
-
-features: [dynamic-import]
-flags: [async]
----*/
-
-let x = 0;
-do {
-  x++;
-  import(/*{ params }*/).catch(error => {
-
-    /*{ body }*/
-
-  }).then($DONE, $DONE);
-} while (!x);
diff --git a/src/dynamic-import/catch/nested-labeled-block.template b/src/dynamic-import/catch/nested-labeled-block.template
deleted file mode 100644
index bb6e512b0e5c93ce4514c756bba6eb4c5d72326e..0000000000000000000000000000000000000000
--- a/src/dynamic-import/catch/nested-labeled-block.template
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2018 Rick Waldron. All rights reserved.
-// Copyright (C) 2018 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-path: language/module-code/dynamic-import/catch/nested-labeled-block-import-catch-
-name: nested labeled block
-esid: sec-import-call-runtime-semantics-evaluation
-info: |
-  ImportCall :
-      import( AssignmentExpression )
-
-  1. Let referencingScriptOrModule be ! GetActiveScriptOrModule().
-  2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null).
-  3. Let argRef be the result of evaluating AssignmentExpression.
-  4. Let specifier be ? GetValue(argRef).
-  5. Let promiseCapability be ! NewPromiseCapability(%Promise%).
-  6. Let specifierString be ToString(specifier).
-  7. IfAbruptRejectPromise(specifierString, promiseCapability).
-  8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability).
-  9. Return promiseCapability.[[Promise]].
-
-
-features: [dynamic-import]
-flags: [async]
----*/
-
-{
-  import(/*{ params }*/).catch(error => {
-
-    /*{ body }*/
-
-  }).then($DONE, $DONE);
-};
diff --git a/src/dynamic-import/checklist.md b/src/dynamic-import/checklist.md
new file mode 100644
index 0000000000000000000000000000000000000000..f9f0021989e89236a880165e5416a31640fe7af1
--- /dev/null
+++ b/src/dynamic-import/checklist.md
@@ -0,0 +1,28 @@
+# Coverage Checklist for `import()`
+
+## Default Templates
+
+_general places it can be found as a CallExpression_
+
+- [x] consise body of an ArrowFunction
+- [x] function body of an ArrowFunction
+- [ ] consise body of an __Async__ ArrowFunction
+- [ ] function body of an __Async__ ArrowFunction
+- [ ] async function await
+
+## Cases
+
+### Syntax
+
+- [x] assignment expression is not optional
+- [x] empty string is a valid assignment expression (not a syntax error)
+
+## 
+
+
+
+
+
+
+
+
diff --git a/src/dynamic-import/default/nested-async-function-await.template b/src/dynamic-import/default/nested-async-function-await.template
index ba361b84494253260179b1329b0e63423c410ff2..f46b2a1baa7cd5caebf7736f9254be256113a362 100644
--- a/src/dynamic-import/default/nested-async-function-await.template
+++ b/src/dynamic-import/default/nested-async-function-await.template
@@ -29,7 +29,7 @@ async function f() {
 
     /*{ body }*/
 
-  }).then($DONE, $DONE).catch($DONE);
+  });
 }
 
-f();
+f().then($DONE, $DONE).catch($DONE);
diff --git a/src/dynamic-import/default/nested-async-function-return-await.template b/src/dynamic-import/default/nested-async-function-return-await.template
index 80d5ecd51bd492ac2747a954e8bcfb7a5cd02460..cc42ac10a3d2040ea657316dee1d4552351a7ee8 100644
--- a/src/dynamic-import/default/nested-async-function-return-await.template
+++ b/src/dynamic-import/default/nested-async-function-return-await.template
@@ -25,11 +25,11 @@ flags: [async]
 ---*/
 
 async function f() {
-  return await import(/*{ params }*/).then(imported => {
+  return await import(/*{ params }*/);
+}
 
-    /*{ body }*/
+f().then(imported => {
 
-  }).then($DONE, $DONE).catch($DONE);
-}
+  /*{ body }*/
 
-f();
+}).then($DONE, $DONE).catch($DONE);
diff --git a/src/dynamic-import/default/nested-async-function.template b/src/dynamic-import/default/nested-async-function.template
index 410b4f2edc1327c7f88574dc7f3cda3750546be0..728e8262c0f5b5d8b68bf444c640fa7121c7f3d1 100644
--- a/src/dynamic-import/default/nested-async-function.template
+++ b/src/dynamic-import/default/nested-async-function.template
@@ -33,4 +33,3 @@ async function f() {
 }
 
 f();
-
diff --git a/src/dynamic-import/default/nested-do-while.template b/src/dynamic-import/default/nested-do-while.template
index f0130ad81862cbe8c55e5621cc58408d87e2adc4..63f3ea89a0f7a55b7db421b09c035347fe54bdc0 100644
--- a/src/dynamic-import/default/nested-do-while.template
+++ b/src/dynamic-import/default/nested-do-while.template
@@ -3,7 +3,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 path: language/module-code/dynamic-import/nested-do-while-
-name: nested do syntax
+name: nested do while syntax
 esid: sec-import-call-runtime-semantics-evaluation
 info: |
   ImportCall :
diff --git a/src/dynamic-import/default/nested-do.template b/src/dynamic-import/default/nested-do.template
deleted file mode 100644
index 8bf4daa59c4764a69bee29a9b3fe0e0bbdefea8b..0000000000000000000000000000000000000000
--- a/src/dynamic-import/default/nested-do.template
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2018 Rick Waldron. All rights reserved.
-// Copyright (C) 2018 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-path: language/module-code/dynamic-import/nested-do-import-then-
-name: nested do
-esid: sec-import-call-runtime-semantics-evaluation
-info: |
-  ImportCall :
-      import( AssignmentExpression )
-
-  1. Let referencingScriptOrModule be ! GetActiveScriptOrModule().
-  2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null).
-  3. Let argRef be the result of evaluating AssignmentExpression.
-  4. Let specifier be ? GetValue(argRef).
-  5. Let promiseCapability be ! NewPromiseCapability(%Promise%).
-  6. Let specifierString be ToString(specifier).
-  7. IfAbruptRejectPromise(specifierString, promiseCapability).
-  8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability).
-  9. Return promiseCapability.[[Promise]].
-
-
-features: [dynamic-import]
-flags: [async]
----*/
-
-let x = 0;
-do {
-  x++;
-  import(/*{ params }*/).then(imported => {
-
-    /*{ body }*/
-
-  }).then($DONE, $DONE).catch($DONE);
-} while (!x);
diff --git a/src/dynamic-import/default/nested-labeled-block.template b/src/dynamic-import/default/nested-labeled-block.template
deleted file mode 100644
index 4ca4b21ee54ad750b7fe35111f0b12d314376d52..0000000000000000000000000000000000000000
--- a/src/dynamic-import/default/nested-labeled-block.template
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2018 Rick Waldron. All rights reserved.
-// Copyright (C) 2018 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-path: language/module-code/dynamic-import/nested-labeled-block-import-then-
-name: nested block
-esid: sec-import-call-runtime-semantics-evaluation
-info: |
-  ImportCall :
-      import( AssignmentExpression )
-
-  1. Let referencingScriptOrModule be ! GetActiveScriptOrModule().
-  2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null).
-  3. Let argRef be the result of evaluating AssignmentExpression.
-  4. Let specifier be ? GetValue(argRef).
-  5. Let promiseCapability be ! NewPromiseCapability(%Promise%).
-  6. Let specifierString be ToString(specifier).
-  7. IfAbruptRejectPromise(specifierString, promiseCapability).
-  8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability).
-  9. Return promiseCapability.[[Promise]].
-
-
-features: [dynamic-import]
-flags: [async]
----*/
-
-{
-  import(/*{ params }*/).then(imported => {
-
-    /*{ body }*/
-
-  }).then($DONE, $DONE).catch($DONE);
-};
diff --git a/src/dynamic-import/syntax/invalid/nested-do-while.template b/src/dynamic-import/syntax/invalid/nested-do-while.template
index bf86ff049990a910e50c8c385b4695dbe839cae9..73e567579d51455c3a5220b47f5cadb43f58daae 100644
--- a/src/dynamic-import/syntax/invalid/nested-do-while.template
+++ b/src/dynamic-import/syntax/invalid/nested-do-while.template
@@ -3,7 +3,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 path: language/module-code/dynamic-import/syntax/invalid/nested-do-while-
-name: nested do syntax
+name: nested do while syntax
 esid: sec-import-call-runtime-semantics-evaluation
 info: |
   ImportCall :
diff --git a/src/dynamic-import/syntax/invalid/nested-do.template b/src/dynamic-import/syntax/invalid/nested-do.template
deleted file mode 100644
index b308638e802889e439382c69e0442c4bd78628d1..0000000000000000000000000000000000000000
--- a/src/dynamic-import/syntax/invalid/nested-do.template
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (C) 2018 Rick Waldron. All rights reserved.
-// Copyright (C) 2018 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-path: language/module-code/dynamic-import/syntax/invalid/nested-do-
-name: nested do syntax
-esid: sec-import-call-runtime-semantics-evaluation
-info: |
-  ImportCall :
-      import( AssignmentExpression )
-
-  1. Let referencingScriptOrModule be ! GetActiveScriptOrModule().
-  2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null).
-  3. Let argRef be the result of evaluating AssignmentExpression.
-  4. Let specifier be ? GetValue(argRef).
-  5. Let promiseCapability be ! NewPromiseCapability(%Promise%).
-  6. Let specifierString be ToString(specifier).
-  7. IfAbruptRejectPromise(specifierString, promiseCapability).
-  8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability).
-  9. Return promiseCapability.[[Promise]].
-
-flags: [module]
-features: [dynamic-import]
-negative:
-  phase: parse
-  type: SyntaxError
----*/
-
-throw "Test262: This statement should not be evaluated.";
-
-let x = 0;
-do {
-  x++;
-  /*{ import }*/;
-} while (!x);
diff --git a/src/dynamic-import/syntax/invalid/nested-labeled.template b/src/dynamic-import/syntax/invalid/nested-labeled.template
deleted file mode 100644
index 83e13bec5e7c64c27c76c3e03ae3effa67249f20..0000000000000000000000000000000000000000
--- a/src/dynamic-import/syntax/invalid/nested-labeled.template
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright (C) 2018 Rick Waldron. All rights reserved.
-// Copyright (C) 2018 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-path: language/module-code/dynamic-import/syntax/invalid/nested-labeled-block-
-name: nested block syntax
-esid: sec-import-call-runtime-semantics-evaluation
-info: |
-  ImportCall :
-      import( AssignmentExpression )
-
-  1. Let referencingScriptOrModule be ! GetActiveScriptOrModule().
-  2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null).
-  3. Let argRef be the result of evaluating AssignmentExpression.
-  4. Let specifier be ? GetValue(argRef).
-  5. Let promiseCapability be ! NewPromiseCapability(%Promise%).
-  6. Let specifierString be ToString(specifier).
-  7. IfAbruptRejectPromise(specifierString, promiseCapability).
-  8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability).
-  9. Return promiseCapability.[[Promise]].
-
-flags: [module]
-features: [dynamic-import]
-negative:
-  phase: parse
-  type: SyntaxError
----*/
-
-throw "Test262: This statement should not be evaluated.";
-
-{
-  /*{ import }*/;
-};
diff --git a/src/dynamic-import/syntax/valid/nested-do-while.template b/src/dynamic-import/syntax/valid/nested-do-while.template
index 1b5a391c025131e51e5156a42202d43a7e0cee21..a269d99144a2cddca4293a3b1be2ab27eeec856b 100644
--- a/src/dynamic-import/syntax/valid/nested-do-while.template
+++ b/src/dynamic-import/syntax/valid/nested-do-while.template
@@ -3,7 +3,7 @@
 // This code is governed by the BSD license found in the LICENSE file.
 /*---
 path: language/module-code/dynamic-import/syntax/valid/nested-do-while-
-name: nested do syntax
+name: nested do while syntax
 esid: sec-import-call-runtime-semantics-evaluation
 info: |
   ImportCall :
diff --git a/src/dynamic-import/syntax/valid/nested-do.template b/src/dynamic-import/syntax/valid/nested-do.template
deleted file mode 100644
index 8545c440b94277028e17ae32d1e88573ec29b4cb..0000000000000000000000000000000000000000
--- a/src/dynamic-import/syntax/valid/nested-do.template
+++ /dev/null
@@ -1,29 +0,0 @@
-// Copyright (C) 2018 Rick Waldron. All rights reserved.
-// Copyright (C) 2018 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-path: language/module-code/dynamic-import/syntax/valid/nested-do-
-name: nested do syntax
-esid: sec-import-call-runtime-semantics-evaluation
-info: |
-  ImportCall :
-      import( AssignmentExpression )
-
-  1. Let referencingScriptOrModule be ! GetActiveScriptOrModule().
-  2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null).
-  3. Let argRef be the result of evaluating AssignmentExpression.
-  4. Let specifier be ? GetValue(argRef).
-  5. Let promiseCapability be ! NewPromiseCapability(%Promise%).
-  6. Let specifierString be ToString(specifier).
-  7. IfAbruptRejectPromise(specifierString, promiseCapability).
-  8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability).
-  9. Return promiseCapability.[[Promise]].
-
-features: [dynamic-import]
----*/
-
-let x = 0;
-do {
-  x++;
-  /*{ import }*/;
-} while (!x);
diff --git a/src/dynamic-import/syntax/valid/nested-labeled.template b/src/dynamic-import/syntax/valid/nested-labeled.template
deleted file mode 100644
index 31b65b5627931f268ea7b5ee50463352db579a50..0000000000000000000000000000000000000000
--- a/src/dynamic-import/syntax/valid/nested-labeled.template
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright (C) 2018 Rick Waldron. All rights reserved.
-// Copyright (C) 2018 the V8 project authors. All rights reserved.
-// This code is governed by the BSD license found in the LICENSE file.
-/*---
-path: language/module-code/dynamic-import/syntax/valid/nested-labeled-block-
-name: nested block syntax
-esid: sec-import-call-runtime-semantics-evaluation
-info: |
-  ImportCall :
-      import( AssignmentExpression )
-
-  1. Let referencingScriptOrModule be ! GetActiveScriptOrModule().
-  2. Assert: referencingScriptOrModule is a Script Record or Module Record (i.e. is not null).
-  3. Let argRef be the result of evaluating AssignmentExpression.
-  4. Let specifier be ? GetValue(argRef).
-  5. Let promiseCapability be ! NewPromiseCapability(%Promise%).
-  6. Let specifierString be ToString(specifier).
-  7. IfAbruptRejectPromise(specifierString, promiseCapability).
-  8. Perform ! HostImportModuleDynamically(referencingScriptOrModule, specifierString, promiseCapability).
-  9. Return promiseCapability.[[Promise]].
-
-
-features: [dynamic-import]
----*/
-
-{
-  /*{ import }*/;
-};