diff --git a/README.md b/README.md
index 73429a5..8772e65 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,4 @@
-#Helper libraries for working with collections.
-
-The `collection` package contains a number of separate libraries
+Contains a number libraries
 with utility functions and classes that makes working with collections easier.
 
 ## Using
@@ -8,15 +6,19 @@
 The `collection` package can be imported as separate libraries, or
 in totality:
 
-    import 'package:collection/algorithms.dart';
-    import 'package:collection/equality.dart';
-    import 'package:collection/iterable_zip.dart';
-    import 'package:collection/priority_queue.dart';
-    import 'package:collection/wrappers.dart';
+```dart
+import 'package:collection/algorithms.dart';
+import 'package:collection/equality.dart';
+import 'package:collection/iterable_zip.dart';
+import 'package:collection/priority_queue.dart';
+import 'package:collection/wrappers.dart';
+```
 
 or
 
-    import 'package:collection/collection.dart';
+```dart
+import 'package:collection/collection.dart';
+```
 
 ## Algorithms
 
@@ -41,7 +43,9 @@
 The library provides ways to define equalities on `Iterable`s, `List`s, `Set`s,
 and `Map`s, as well as combinations of these, such as:
 
-    const MapEquality(const IdentityEquality(), const ListEquality());
+```dart
+const MapEquality(const IdentityEquality(), const ListEquality());
+```
 
 This equality considers maps equal if they have identical keys, and the
 corresponding values are lists with equal (`operator==`) values.
@@ -54,7 +58,7 @@
 
 ## Priority Queue
 
-An interface and implemention of a priority queue.
+An interface and implementation of a priority queue.
 
 
 ## Wrappers
diff --git a/lib/equality.dart b/lib/equality.dart
index c6fdafa..5911863 100644
--- a/lib/equality.dart
+++ b/lib/equality.dart
@@ -357,7 +357,7 @@
  *
  * In ordered mode, lists and iterables are required to have equal elements
  * in the same order. In unordered mode, the order of elements in iterables
- * and lists are not importan.
+ * and lists are not important.
  *
  * A list is only equal to another list, likewise for sets and maps. All other
  * iterables are compared as iterables only.
diff --git a/lib/priority_queue.dart b/lib/priority_queue.dart
index efb3239..e1a0177 100644
--- a/lib/priority_queue.dart
+++ b/lib/priority_queue.dart
@@ -275,7 +275,7 @@
    */
   int _locate(E object) {
     if (_length == 0) return -1;
-    // Count positions from one instad of zero. This gives the numbers
+    // Count positions from one instead of zero. This gives the numbers
     // some nice properties. For example, all right children are odd,
     // their left sibling is even, and the parent is found by shifting
     // right by one.
diff --git a/lib/wrappers.dart b/lib/wrappers.dart
index 9f8b833..30c736e 100644
--- a/lib/wrappers.dart
+++ b/lib/wrappers.dart
@@ -6,8 +6,8 @@
  * Delegating wrappers for [Iterable], [List], [Set], [Queue] and [Map].
  *
  * Also adds unmodifiable views for `Set` and `Map`, and a fixed length
- * view for `List`. The unmodifable list view from `dart:collection` is exported
- * as well, just for completeness.
+ * view for `List`. The unmodifiable list view from `dart:collection` is
+ * exported as well, just for completeness.
  */
 library dart.pkg.collection.wrappers;
 
diff --git a/test/wrapper_test.dart b/test/wrapper_test.dart
index a3526a3..e3043a2 100644
--- a/test/wrapper_test.dart
+++ b/test/wrapper_test.dart
@@ -147,7 +147,7 @@
     expect.first.equals.first;
     // Default values of the Iterable interface will be added in the
     // second call to firstWhere, so we must record them in our
-    // expectation (which doesn't have the interface implementat or
+    // expectation (which doesn't have the interface implemented or
     // its default values).
     expect.firstWhere(func1, orElse: null).equals.firstWhere(func1);
     expect.firstWhere(func1, orElse: func0).equals.
