diff --git a/couchdb_schematics/document.py b/couchdb_schematics/document.py
index <HASH>..<HASH> 100644
--- a/couchdb_schematics/document.py
+++ b/couchdb_schematics/document.py
@@ -21,7 +21,8 @@ class SchematicsDocument(Model):
     _rev = StringType()
     doc_type = StringType()
 
-    def __init__(self, id=None, **kwargs):
+    def __init__(self, **kwargs):
+        id = kwargs.pop('id', None)
         super(SchematicsDocument, self).__init__(raw_data=kwargs)
         if id:
            self.id = id
diff --git a/tests/test_schematics_document.py b/tests/test_schematics_document.py
index <HASH>..<HASH> 100644
--- a/tests/test_schematics_document.py
+++ b/tests/test_schematics_document.py
@@ -16,8 +16,8 @@ class User1(User1Model,SchematicsDocument):
 
 class User2(User2Model,SchematicsDocument):
 
-    def __init__(self, id=None, **kwargs):
-        super(User2, self).__init__(id, **kwargs)
+    def __init__(self, **kwargs):
+        super(User2, self).__init__(**kwargs)
         if 'password' in kwargs and '_rev' not in kwargs:
            self.password = kwargs['password']
removed id as an optional initialization argument