diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index df8a24d..6df12d3 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -29,7 +29,7 @@
     timeout-minutes: 30
     strategy:
       matrix:
-        node-version: [ 12, 14 ]
+        node-version: [ 10, 12, 14 ]
     steps:
       - uses: actions/checkout@v2
         with:
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
index 051fea3..38ecf3d 100644
--- a/.github/workflows/test.yaml
+++ b/.github/workflows/test.yaml
@@ -29,7 +29,7 @@
     timeout-minutes: 30
     strategy:
       matrix:
-        node-version: [ 12, 14 ]
+        node-version: [ 10, 12, 14 ]
     steps:
       - uses: actions/checkout@v2
         with:
diff --git a/jest.setup.js b/jest.setup.js
index 29df171..39eff53 100644
--- a/jest.setup.js
+++ b/jest.setup.js
@@ -19,7 +19,7 @@
 
 const waitForExpect = require('wait-for-expect');
 
-jest.setTimeout(30000_000);
+jest.setTimeout(30000000);
 
-waitForExpect.defaults.interval = 10_000; // ms
-waitForExpect.defaults.timeout = 120_000; // ms
+waitForExpect.defaults.interval = 10000; // ms
+waitForExpect.defaults.timeout = 120000; // ms
diff --git a/package-lock.json b/package-lock.json
index 5138bfa..d8cb4dd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8298,8 +8298,7 @@
     "tslib": {
       "version": "2.0.3",
       "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-2.0.3.tgz?cache=0&sync_timestamp=1602286724979&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-2.0.3.tgz",
-      "integrity": "sha1-jgdBrEX8DCJuWKF7/D5kubxsphw=",
-      "dev": true
+      "integrity": "sha1-jgdBrEX8DCJuWKF7/D5kubxsphw="
     },
     "tslint": {
       "version": "6.1.2",
diff --git a/src/core/PluginInstaller.ts b/src/core/PluginInstaller.ts
index c0c34de..887cd6f 100644
--- a/src/core/PluginInstaller.ts
+++ b/src/core/PluginInstaller.ts
@@ -25,6 +25,11 @@
 
 const logger = createLogger(__filename);
 
+let topModule = module;
+for (; topModule.parent; topModule = topModule.parent);
+
+const topResolve = (request: string) => (module.constructor as any)._resolveFilename(request, topModule)
+
 class PluginInstaller {
   pluginDir: string;
 
@@ -32,18 +37,25 @@
     this.pluginDir = path.resolve(__dirname, '..', 'plugins');
   }
 
-  private isBuiltIn = (module: string): boolean => require.resolve(module) === module;
+  private isBuiltIn = (module: string): boolean => topResolve(module) === module;
 
   private checkModuleVersion = (plugin: SwPlugin): { version: string; isSupported: boolean } => {
-    if (this.isBuiltIn(plugin.module)) {
+    try {
+      if (this.isBuiltIn(plugin.module)) {
+        return {
+          version: '*',
+          isSupported: true,
+        };
+      }
+    } catch {  // module not found
       return {
-        version: '*',
-        isSupported: true,
+        version: 'not found,',
+        isSupported: false,
       };
     }
 
-    const packageJsonPath = require.resolve(`${plugin.module}/package.json`);
-    const version = require(packageJsonPath).version;
+    const packageJsonPath = topResolve(`${plugin.module}/package.json`);
+    const version = topModule.require(packageJsonPath).version;
 
     if (!semver.satisfies(version, plugin.versions)) {
       logger.info(`Plugin ${plugin.module} ${version} doesn't satisfy the supported version ${plugin.versions}`);
diff --git a/src/plugins/HttpPlugin.ts b/src/plugins/HttpPlugin.ts
index 3d8f569..0a1f1db 100644
--- a/src/plugins/HttpPlugin.ts
+++ b/src/plugins/HttpPlugin.ts
@@ -23,7 +23,6 @@
 import ContextManager from '../trace/context/ContextManager';
 import { Component } from '../trace/Component';
 import Tag from '../Tag';
-import Span from '../trace/span/Span';
 import { SpanLayer } from '../proto/language-agent/Tracing_pb';
 import { ContextCarrier } from '../trace/context/ContextCarrier';
 import { createLogger } from '../logging';
diff --git a/src/trace/context/ContextManager.ts b/src/trace/context/ContextManager.ts
index 6fd34e6..3ed253e 100644
--- a/src/trace/context/ContextManager.ts
+++ b/src/trace/context/ContextManager.ts
@@ -20,11 +20,29 @@
 import Context from '../../trace/context/Context';
 import Span from '../../trace/span/Span';
 import SpanContext from '../../trace/context/SpanContext';
-import { AsyncLocalStorage } from 'async_hooks';
 
 type AsyncState = {context: Context, spans: Span[]};
 
-const store = new AsyncLocalStorage<AsyncState>();
+const async_hooks = require('async_hooks');
+let   store: any;
+
+if (async_hooks.AsyncLocalStorage) {
+  store = new async_hooks.AsyncLocalStorage();
+
+} else {  // Node 10 doesn't have AsyncLocalStore, so recreate it
+  const executionAsyncId = async_hooks.executionAsyncId;
+  const asyncLocalStore: {[index: string]: any} = {};
+
+  store = new class {
+    getStore(): AsyncState | undefined { return asyncLocalStore[executionAsyncId()] as unknown as AsyncState; }
+    enterWith(store: AsyncState): void { asyncLocalStore[executionAsyncId()] = store; }
+  }();
+
+  async_hooks.createHook({
+    init(asyncId: number, type: string, triggerId: number) { asyncLocalStore[asyncId] = asyncLocalStore[triggerId]; },
+    destroy(asyncId: number) { delete asyncLocalStore[asyncId]; }
+  }).enable();
+}
 
 class ContextManager {
   get asyncState(): AsyncState {
