strong-mode clean
diff --git a/.analysis_options b/.analysis_options
new file mode 100644
index 0000000..a10d4c5
--- /dev/null
+++ b/.analysis_options
@@ -0,0 +1,2 @@
+analyzer:
+  strong-mode: true
diff --git a/lib/discovery_analysis.dart b/lib/discovery_analysis.dart
index 6d4b9ed..058330b 100644
--- a/lib/discovery_analysis.dart
+++ b/lib/discovery_analysis.dart
@@ -61,10 +61,10 @@
     if (!directory.existsSync()) {
       throw new ArgumentError("Directory not found: $directory");
     }
-    List contexts = [];
+    var contexts = <PackageContext>[];
     void findRoots(Directory directory) {
       Packages packages;
-      List oldContexts;
+      List<PackageContext> oldContexts;
       File packagesFile = new File(path.join(directory.path, ".packages"));
       if (packagesFile.existsSync()) {
         packages = _loadPackagesFile(packagesFile);
diff --git a/test/discovery_test.dart b/test/discovery_test.dart
index 97b7bbf..8807ac4 100644
--- a/test/discovery_test.dart
+++ b/test/discovery_test.dart
@@ -163,7 +163,7 @@
 
   test(".packages w/ loader", () async {
     Uri location = Uri.parse("krutch://example.com/path/");
-    Future loader(Uri file) async {
+    Future<List<int>> loader(Uri file) async {
       if (file.path.endsWith(".packages")) {
         return packagesFile.codeUnits;
       }
@@ -186,7 +186,7 @@
 
   test("no packages w/ loader", () async {
     Uri location = Uri.parse("krutch://example.com/path/");
-    Future loader(Uri file) async {
+    Future<List<int>> loader(Uri file) async {
       throw "not found";
     }
     // A non-file: location with no .packages or packages/:
@@ -220,7 +220,7 @@
   });
 
   test("loadPackagesFile w/ loader", () async {
-    loader(Uri uri) async => packagesFile.codeUnits;
+    Future<List<int>> loader(Uri uri) async => packagesFile.codeUnits;
     Uri file = Uri.parse("krutz://example.com/.packages");
     Packages resolver = await loadPackagesFile(file, loader: loader);
     validatePackagesFile(resolver, file);
diff --git a/test/parse_write_test.dart b/test/parse_write_test.dart
index 29c2224..4302187 100644
--- a/test/parse_write_test.dart
+++ b/test/parse_write_test.dart
@@ -81,7 +81,7 @@
   });
 }
 
-String writeToString(Map map, {Uri baseUri, String comment}) {
+String writeToString(Map<String, Uri> map, {Uri baseUri, String comment}) {
   var buffer = new StringBuffer();
   write(buffer, map, baseUri: baseUri, comment: comment);
   return buffer.toString();