review comments
diff --git a/.gitignore b/.gitignore
index 7d1acad..52f0c5b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,3 @@
 .packages
 .pub/
 pubspec.lock
-.vscode/
diff --git a/example/ga.dart b/example/ga.dart
index bfd8ce3..bf0807e 100644
--- a/example/ga.dart
+++ b/example/ga.dart
@@ -24,7 +24,7 @@
   await ga.sendScreenView('home');
   await ga.sendScreenView('files');
   await ga
-      .sendException('foo error:\n' + sanitizeStacktrace(StackTrace.current));
+      .sendException('foo error:\n${sanitizeStacktrace(StackTrace.current)}');
   await ga.sendTiming('writeDuration', 123);
   await ga.sendEvent('create', 'consoleapp', label: 'Console App');
   print('pinged ${ua}');
diff --git a/lib/src/usage_impl.dart b/lib/src/usage_impl.dart
index d04e3d6..105fe36 100644
--- a/lib/src/usage_impl.dart
+++ b/lib/src/usage_impl.dart
@@ -168,7 +168,7 @@
 
     description = description.replaceAll('\n', '; ');
 
-    if (description != null && description.length > maxExceptionLength) {
+    if (description.length > maxExceptionLength) {
       description = description.substring(0, maxExceptionLength);
     }
 
diff --git a/lib/src/usage_impl_io.dart b/lib/src/usage_impl_io.dart
index 1c8fbef..fe5cc44 100644
--- a/lib/src/usage_impl_io.dart
+++ b/lib/src/usage_impl_io.dart
@@ -33,7 +33,7 @@
             applicationName: applicationName,
             applicationVersion: applicationVersion,
             analyticsUrl: analyticsUrl) {
-    final String locale = getPlatformLocale() ?? '';
+    final String locale = getPlatformLocale();
     if (locale != null) {
       setSessionValue('ul', locale);
     }
diff --git a/lib/usage.dart b/lib/usage.dart
index 7589e33..13f98d6 100644
--- a/lib/usage.dart
+++ b/lib/usage.dart
@@ -29,6 +29,9 @@
 // Matches file:/, non-ws, /, non-ws, .dart
 final RegExp _pathRegex = new RegExp(r'file:/\S+/(\S+\.dart)');
 
+// Match multiple tabs or spaces.
+final RegExp _tabOrSpaceRegex = new RegExp(r'[\t ]+');
+
 /**
  * An interface to a Google Analytics session. [AnalyticsHtml] and [AnalyticsIO]
  * are concrete implementations of this interface. [AnalyticsMock] can be used
@@ -297,7 +300,7 @@
 
   if (shorten) {
     // Shorten the stacktrace up a bit.
-    str = str.replaceAll(new RegExp(r'[\t ]+'), ' ');
+    str = str.replaceAll(_tabOrSpaceRegex, ' ');
   }
 
   return str;
diff --git a/lib/uuid/uuid.dart b/lib/uuid/uuid.dart
index c71550c..eaafeb2 100644
--- a/lib/uuid/uuid.dart
+++ b/lib/uuid/uuid.dart
@@ -17,7 +17,7 @@
 /// For more information, see
 /// [en.wikipedia.org/wiki/Universally_unique_identifier](http://en.wikipedia.org/wiki/Universally_unique_identifier).
 class Uuid {
-  Random _random = new Random();
+  final Random _random = new Random();
 
   /// Generate a version 4 (random) uuid. This is a uuid scheme that only uses
   /// random numbers as the source of the generated uuid.