diff --git a/CHANGELOG.md b/CHANGELOG.md
index 47f104c..b0801f4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.4.0
+
+Update `toString` to default to `runtimeType` ([#27](https://github.com/felangel/equatable/issues/27))
+
 # 0.3.0
 
 Enforce Immutability ([#25](https://github.com/felangel/equatable/issues/25))
diff --git a/lib/src/equatable.dart b/lib/src/equatable.dart
index 91cbca6..e00588b 100644
--- a/lib/src/equatable.dart
+++ b/lib/src/equatable.dart
@@ -27,4 +27,7 @@
 
   @override
   int get hashCode => runtimeType.hashCode ^ mapPropsToHashCode(props);
+
+  @override
+  String toString() => '$runtimeType';
 }
diff --git a/lib/src/equatable_mixin.dart b/lib/src/equatable_mixin.dart
index dc62c9c..fac729f 100644
--- a/lib/src/equatable_mixin.dart
+++ b/lib/src/equatable_mixin.dart
@@ -26,4 +26,7 @@
 
   @override
   int get hashCode => runtimeType.hashCode ^ mapPropsToHashCode(props);
+
+  @override
+  String toString() => '$runtimeType';
 }
diff --git a/pubspec.yaml b/pubspec.yaml
index c655cc9..b89d507 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,6 @@
 name: equatable
 description: An abstract class that helps to implement equality without needing to explicitly override == and hashCode.
-version: 0.3.0
+version: 0.4.0
 author: Felix Angelov <felangelov@gmail.com>
 homepage: https://github.com/felangel/equatable
 
diff --git a/test/equatable_mixin_test.dart b/test/equatable_mixin_test.dart
index 0024883..7e85afd 100644
--- a/test/equatable_mixin_test.dart
+++ b/test/equatable_mixin_test.dart
@@ -89,7 +89,7 @@
   group('Empty Equatable', () {
     test('should correct toString', () {
       final instance = EmptyEquatable();
-      expect(instance.toString(), "Instance of 'EmptyEquatable'");
+      expect(instance.toString(), 'EmptyEquatable');
     });
 
     test('should return true when instance is the same', () {
@@ -119,7 +119,7 @@
   group('Simple Equatable (string)', () {
     test('should correct toString', () {
       final instance = SimpleEquatable('simple');
-      expect(instance.toString(), "Instance of 'SimpleEquatable<String>'");
+      expect(instance.toString(), 'SimpleEquatable<String>');
     });
 
     test('should return true when instance is the same', () {
@@ -164,7 +164,7 @@
   group('Simple Equatable (number)', () {
     test('should correct toString', () {
       final instance = SimpleEquatable(0);
-      expect(instance.toString(), "Instance of 'SimpleEquatable<int>'");
+      expect(instance.toString(), 'SimpleEquatable<int>');
     });
 
     test('should return true when instance is the same', () {
@@ -203,7 +203,7 @@
   group('Simple Equatable (bool)', () {
     test('should correct toString', () {
       final instance = SimpleEquatable(true);
-      expect(instance.toString(), "Instance of 'SimpleEquatable<bool>'");
+      expect(instance.toString(), 'SimpleEquatable<bool>');
     });
 
     test('should return true when instance is the same', () {
@@ -245,8 +245,7 @@
         key: 'foo',
         value: 'bar',
       ));
-      expect(
-          instance.toString(), "Instance of 'SimpleEquatable<EquatableData>'");
+      expect(instance.toString(), 'SimpleEquatable<EquatableData>');
     });
     test('should return true when instance is the same', () {
       final instance = SimpleEquatable(EquatableData(
@@ -305,7 +304,7 @@
   group('Multipart Equatable', () {
     test('should correct toString', () {
       final instance = MultipartEquatable("s1", "s2");
-      expect(instance.toString(), "Instance of 'MultipartEquatable<String>'");
+      expect(instance.toString(), 'MultipartEquatable<String>');
     });
     test('should return true when instance is the same', () {
       final instance = MultipartEquatable("s1", "s2");
@@ -354,7 +353,7 @@
         hairColor: Color.black,
         children: ['Bob'],
       );
-      expect(instance.toString(), "Instance of 'ComplexEquatable'");
+      expect(instance.toString(), 'ComplexEquatable');
     });
     test('should return true when instance is the same', () {
       final instance = ComplexEquatable(
@@ -438,7 +437,7 @@
         }
         """,
       ) as Map<String, dynamic>);
-      expect(instance.toString(), "Instance of 'Credentials'");
+      expect(instance.toString(), 'Credentials');
     });
 
     test('should return true when instance is the same', () {
diff --git a/test/equatable_test.dart b/test/equatable_test.dart
index e69bd0e..eee26b5 100644
--- a/test/equatable_test.dart
+++ b/test/equatable_test.dart
@@ -73,7 +73,7 @@
   group('Empty Equatable', () {
     test('should correct toString', () {
       final instance = EmptyEquatable();
-      expect(instance.toString(), "Instance of 'EmptyEquatable'");
+      expect(instance.toString(), 'EmptyEquatable');
     });
 
     test('should return true when instance is the same', () {
@@ -103,7 +103,7 @@
   group('Simple Equatable (string)', () {
     test('should correct toString', () {
       final instance = SimpleEquatable('simple');
-      expect(instance.toString(), "Instance of 'SimpleEquatable<String>'");
+      expect(instance.toString(), 'SimpleEquatable<String>');
     });
 
     test('should return true when instance is the same', () {
@@ -119,6 +119,11 @@
       );
     });
 
+    test('should return correct toString', () {
+      final instance = SimpleEquatable('simple');
+      expect(instance.toString(), 'SimpleEquatable<String>');
+    });
+
     test('should return true when instances are different', () {
       final instanceA = SimpleEquatable('simple');
       final instanceB = SimpleEquatable('simple');
@@ -148,7 +153,7 @@
   group('Simple Equatable (number)', () {
     test('should correct toString', () {
       final instance = SimpleEquatable(0);
-      expect(instance.toString(), "Instance of 'SimpleEquatable<int>'");
+      expect(instance.toString(), 'SimpleEquatable<int>');
     });
 
     test('should return true when instance is the same', () {
@@ -187,7 +192,7 @@
   group('Simple Equatable (bool)', () {
     test('should correct toString', () {
       final instance = SimpleEquatable(true);
-      expect(instance.toString(), "Instance of 'SimpleEquatable<bool>'");
+      expect(instance.toString(), 'SimpleEquatable<bool>');
     });
 
     test('should return true when instance is the same', () {
@@ -229,8 +234,7 @@
         key: 'foo',
         value: 'bar',
       ));
-      expect(
-          instance.toString(), "Instance of 'SimpleEquatable<EquatableData>'");
+      expect(instance.toString(), 'SimpleEquatable<EquatableData>');
     });
     test('should return true when instance is the same', () {
       final instance = SimpleEquatable(EquatableData(
@@ -289,7 +293,7 @@
   group('Multipart Equatable', () {
     test('should correct toString', () {
       final instance = MultipartEquatable("s1", "s2");
-      expect(instance.toString(), "Instance of 'MultipartEquatable<String>'");
+      expect(instance.toString(), 'MultipartEquatable<String>');
     });
     test('should return true when instance is the same', () {
       final instance = MultipartEquatable("s1", "s2");
@@ -338,7 +342,7 @@
         hairColor: Color.black,
         children: ['Bob'],
       );
-      expect(instance.toString(), "Instance of 'ComplexEquatable'");
+      expect(instance.toString(), 'ComplexEquatable');
     });
     test('should return true when instance is the same', () {
       final instance = ComplexEquatable(
@@ -422,7 +426,7 @@
         }
         """,
       ) as Map<String, dynamic>);
-      expect(instance.toString(), "Instance of 'Credentials'");
+      expect(instance.toString(), 'Credentials');
     });
 
     test('should return true when instance is the same', () {
