diff --git a/lib/collection.js b/lib/collection.js
index <HASH>..<HASH> 100644
--- a/lib/collection.js
+++ b/lib/collection.js
@@ -38,6 +38,7 @@ function Collection(options) {
 };
 
 
+Collection.prototype.forEach = forEach;
 Collection.prototype.find = find;
 Collection.prototype.findAll = findAll;
 Collection.prototype.remove = remove;
@@ -369,3 +370,20 @@ function removeAll(filter) {
 
   return count;
 }
+
+
+/**
+Same as collection.items.forEach but using a yieldable action
+*/
+function * forEach(action) {
+  var i;
+  var ilen;
+
+  if (!(action instanceof Function)) {
+    throw CollectionException('Action must be a function');
+  }
+
+  for (i = 0, ilen = this.items.length; i < ilen; ++i) {
+    yield action(this.items[i], i);
+  }
+}
diff --git a/lib/model.js b/lib/model.js
index <HASH>..<HASH> 100644
--- a/lib/model.js
+++ b/lib/model.js
@@ -355,6 +355,7 @@ function Model(data, exists) {
     }
   }
 
+  this._isDirty = false; // overwrite...
 }
 util.inherits(Model, EventEmitter);
Model isDirty set to false on instanciate. Added async collection foreach