diff --git a/modules/@angular/common/src/directives.ts b/modules/@angular/common/src/directives.ts
index e81c64a200..f0ddee00eb 100644
--- a/modules/@angular/common/src/directives.ts
+++ b/modules/@angular/common/src/directives.ts
@@ -10,5 +10,4 @@ export {NgTemplateOutlet} from './directives/ng_template_outlet';
 export {NgStyle} from './directives/ng_style';
 export {NgSwitch, NgSwitchWhen, NgSwitchDefault} from './directives/ng_switch';
 export {NgPlural, NgPluralCase, NgLocalization} from './directives/ng_plural';
-export * from './directives/observable_list_diff';
 export {CORE_DIRECTIVES} from './directives/core_directives';
diff --git a/modules/@angular/common/src/directives/observable_list_diff.ts b/modules/@angular/common/src/directives/observable_list_diff.ts
deleted file mode 100644
index 9a1f1cfc4b..0000000000
--- a/modules/@angular/common/src/directives/observable_list_diff.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-// TS does not have Observables
-
-// I need to be here to make TypeScript think this is a module.
-import {} from '../../src/facade/lang';
-
-/**
- * This module exists in Dart, but not in Typescript. This exported symbol
- * is only here to help Typescript think this is a module.
- * @internal
- */
-export var workaround_empty_observable_list_diff: any;
diff --git a/modules/@angular/common/src/location/location.ts b/modules/@angular/common/src/location/location.ts
index 6997356d94..9e9acdd750 100644
--- a/modules/@angular/common/src/location/location.ts
+++ b/modules/@angular/common/src/location/location.ts
@@ -1,5 +1,5 @@
-import {Injectable, Inject} from '@angular/core';
-import {EventEmitter, ObservableWrapper} from '../../src/facade/async';
+import {Injectable, EventEmitter} from '@angular/core';
+import {ObservableWrapper} from '../../src/facade/async';
 
 import {LocationStrategy} from './location_strategy';
 
diff --git a/modules/@angular/common/tsconfig-es2015.json b/modules/@angular/common/tsconfig-es2015.json
index 9b4725e253..9cc18d6dcf 100644
--- a/modules/@angular/common/tsconfig-es2015.json
+++ b/modules/@angular/common/tsconfig-es2015.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "es2015",
diff --git a/modules/@angular/common/tsconfig-es5.json b/modules/@angular/common/tsconfig-es5.json
index 59cc81af01..a65803d910 100644
--- a/modules/@angular/common/tsconfig-es5.json
+++ b/modules/@angular/common/tsconfig-es5.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "commonjs",
diff --git a/modules/@angular/compiler/test/metadata_resolver_spec.ts b/modules/@angular/compiler/test/metadata_resolver_spec.ts
index 8aa02e7f22..abac4b9b16 100644
--- a/modules/@angular/compiler/test/metadata_resolver_spec.ts
+++ b/modules/@angular/compiler/test/metadata_resolver_spec.ts
@@ -14,7 +14,7 @@ import {
 
 import {IS_DART, stringify} from '../src/facade/lang';
 import {CompileMetadataResolver} from '../src/metadata_resolver';
-import {LifecycleHooks, LIFECYCLE_HOOKS_VALUES} from '@angular/core/src/metadata/lifecycle_hooks';
+import {LIFECYCLE_HOOKS_VALUES} from '@angular/core/src/metadata/lifecycle_hooks';
 import {
   Component,
   Directive,
diff --git a/modules/@angular/compiler/tsconfig-es2015.json b/modules/@angular/compiler/tsconfig-es2015.json
index 944b6df525..7c4556e43c 100644
--- a/modules/@angular/compiler/tsconfig-es2015.json
+++ b/modules/@angular/compiler/tsconfig-es2015.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "es2015",
diff --git a/modules/@angular/compiler/tsconfig-es5.json b/modules/@angular/compiler/tsconfig-es5.json
index 370701fb69..8206e18f9a 100644
--- a/modules/@angular/compiler/tsconfig-es5.json
+++ b/modules/@angular/compiler/tsconfig-es5.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "commonjs",
diff --git a/modules/@angular/core/src/metadata/lifecycle_hooks.ts b/modules/@angular/core/src/metadata/lifecycle_hooks.ts
index efe8b1c899..0c4d384142 100644
--- a/modules/@angular/core/src/metadata/lifecycle_hooks.ts
+++ b/modules/@angular/core/src/metadata/lifecycle_hooks.ts
@@ -11,9 +11,6 @@ export enum LifecycleHooks {
   AfterViewChecked
 }
 
-/**
- * @internal
- */
 export var LIFECYCLE_HOOKS_VALUES = [
   LifecycleHooks.OnInit,
   LifecycleHooks.OnDestroy,
diff --git a/modules/@angular/core/tsconfig-es2015.json b/modules/@angular/core/tsconfig-es2015.json
index a552af453a..3a96a7fa0d 100644
--- a/modules/@angular/core/tsconfig-es2015.json
+++ b/modules/@angular/core/tsconfig-es2015.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "es2015",
diff --git a/modules/@angular/core/tsconfig-es5.json b/modules/@angular/core/tsconfig-es5.json
index 167df9760c..b5b2a8594c 100644
--- a/modules/@angular/core/tsconfig-es5.json
+++ b/modules/@angular/core/tsconfig-es5.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "commonjs",
diff --git a/modules/@angular/facade/src/async.ts b/modules/@angular/facade/src/async.ts
index 1635b5f783..00c26b5365 100644
--- a/modules/@angular/facade/src/async.ts
+++ b/modules/@angular/facade/src/async.ts
@@ -98,8 +98,11 @@ export class ObservableWrapper {
  * Once a reference implementation of the spec is available, switch to it.
  */
 export class EventEmitter<T> extends Subject<T> {
-  /** @internal */
-  _isAsync: boolean;
+  // TODO: mark this as internal once all the facades are gone
+  // we can't mark it as internal now because EventEmitter exported via @angular/core would not
+  // contain this property making it incompatible with all the code that uses EventEmitter via
+  // facades, which are local to the code and do not have this property stripped.
+  __isAsync: boolean;
 
   /**
    * Creates an instance of [EventEmitter], which depending on [isAsync],
@@ -107,7 +110,7 @@ export class EventEmitter<T> extends Subject<T> {
    */
   constructor(isAsync: boolean = true) {
     super();
-    this._isAsync = isAsync;
+    this.__isAsync = isAsync;
   }
 
   emit(value: T) { super.next(value); }
@@ -123,30 +126,30 @@ export class EventEmitter<T> extends Subject<T> {
     let completeFn = () => null;
 
     if (generatorOrNext && typeof generatorOrNext === 'object') {
-      schedulerFn = this._isAsync ? (value) => { setTimeout(() => generatorOrNext.next(value)); } :
+      schedulerFn = this.__isAsync ? (value) => { setTimeout(() => generatorOrNext.next(value)); } :
                                     (value) => { generatorOrNext.next(value); };
 
       if (generatorOrNext.error) {
-        errorFn = this._isAsync ? (err) => { setTimeout(() => generatorOrNext.error(err)); } :
+        errorFn = this.__isAsync ? (err) => { setTimeout(() => generatorOrNext.error(err)); } :
                                   (err) => { generatorOrNext.error(err); };
       }
 
       if (generatorOrNext.complete) {
-        completeFn = this._isAsync ? () => { setTimeout(() => generatorOrNext.complete()); } :
+        completeFn = this.__isAsync ? () => { setTimeout(() => generatorOrNext.complete()); } :
                                      () => { generatorOrNext.complete(); };
       }
     } else {
-      schedulerFn = this._isAsync ? (value) => { setTimeout(() => generatorOrNext(value)); } :
+      schedulerFn = this.__isAsync ? (value) => { setTimeout(() => generatorOrNext(value)); } :
                                     (value) => { generatorOrNext(value); };
 
       if (error) {
         errorFn =
-            this._isAsync ? (err) => { setTimeout(() => error(err)); } : (err) => { error(err); };
+            this.__isAsync ? (err) => { setTimeout(() => error(err)); } : (err) => { error(err); };
       }
 
       if (complete) {
         completeFn =
-            this._isAsync ? () => { setTimeout(() => complete()); } : () => { complete(); };
+            this.__isAsync ? () => { setTimeout(() => complete()); } : () => { complete(); };
       }
     }
 
diff --git a/modules/@angular/http/tsconfig-es2015.json b/modules/@angular/http/tsconfig-es2015.json
index fb842c26f1..fc62b849ee 100644
--- a/modules/@angular/http/tsconfig-es2015.json
+++ b/modules/@angular/http/tsconfig-es2015.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "es2015",
diff --git a/modules/@angular/http/tsconfig-es5.json b/modules/@angular/http/tsconfig-es5.json
index 5c652a1fe5..dcd9d7da97 100644
--- a/modules/@angular/http/tsconfig-es5.json
+++ b/modules/@angular/http/tsconfig-es5.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "commonjs",
diff --git a/modules/@angular/platform-browser/tsconfig-es2015.json b/modules/@angular/platform-browser/tsconfig-es2015.json
index ad605dd149..55813d490e 100644
--- a/modules/@angular/platform-browser/tsconfig-es2015.json
+++ b/modules/@angular/platform-browser/tsconfig-es2015.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "es2015",
diff --git a/modules/@angular/platform-browser/tsconfig-es5.json b/modules/@angular/platform-browser/tsconfig-es5.json
index d28055ba23..7d1bdef27f 100644
--- a/modules/@angular/platform-browser/tsconfig-es5.json
+++ b/modules/@angular/platform-browser/tsconfig-es5.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "commonjs",
diff --git a/modules/@angular/platform-server/tsconfig-es2015.json b/modules/@angular/platform-server/tsconfig-es2015.json
index 5b09bba4ba..b5d4ac6e15 100644
--- a/modules/@angular/platform-server/tsconfig-es2015.json
+++ b/modules/@angular/platform-server/tsconfig-es2015.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "es2015",
diff --git a/modules/@angular/platform-server/tsconfig-es5.json b/modules/@angular/platform-server/tsconfig-es5.json
index e28dfe7243..07e2083c34 100644
--- a/modules/@angular/platform-server/tsconfig-es5.json
+++ b/modules/@angular/platform-server/tsconfig-es5.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "commonjs",
diff --git a/modules/@angular/router-deprecated/tsconfig-es2015.json b/modules/@angular/router-deprecated/tsconfig-es2015.json
index b924192eb1..a9054ea4ba 100644
--- a/modules/@angular/router-deprecated/tsconfig-es2015.json
+++ b/modules/@angular/router-deprecated/tsconfig-es2015.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "es2015",
diff --git a/modules/@angular/router-deprecated/tsconfig-es5.json b/modules/@angular/router-deprecated/tsconfig-es5.json
index 505e1ca503..e7481fd848 100644
--- a/modules/@angular/router-deprecated/tsconfig-es5.json
+++ b/modules/@angular/router-deprecated/tsconfig-es5.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "commonjs",
diff --git a/modules/@angular/router/tsconfig-es2015.json b/modules/@angular/router/tsconfig-es2015.json
index 690ca82325..f084c718d0 100644
--- a/modules/@angular/router/tsconfig-es2015.json
+++ b/modules/@angular/router/tsconfig-es2015.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "es2015",
diff --git a/modules/@angular/router/tsconfig-es5.json b/modules/@angular/router/tsconfig-es5.json
index 281ca55f8b..53c047fdb7 100644
--- a/modules/@angular/router/tsconfig-es5.json
+++ b/modules/@angular/router/tsconfig-es5.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "commonjs",
diff --git a/modules/@angular/upgrade/tsconfig-es2015.json b/modules/@angular/upgrade/tsconfig-es2015.json
index f30d3c5858..0e652a0c63 100644
--- a/modules/@angular/upgrade/tsconfig-es2015.json
+++ b/modules/@angular/upgrade/tsconfig-es2015.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "es2015",
diff --git a/modules/@angular/upgrade/tsconfig-es5.json b/modules/@angular/upgrade/tsconfig-es5.json
index 8fb47a40a7..eb81583fb0 100644
--- a/modules/@angular/upgrade/tsconfig-es5.json
+++ b/modules/@angular/upgrade/tsconfig-es5.json
@@ -5,6 +5,7 @@
   "compilerOptions": {
     "baseUrl": ".",
     "declaration": true,
+    "stripInternal": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
     "module": "commonjs",