diff --git a/ucoinpy/documents/__init__.py b/ucoinpy/documents/__init__.py
index d0057d916ed98558dc74d2c1678b35ffb32895f0..0fe4cc12ddd034b516ba535eee18d8414a236cae 100644
--- a/ucoinpy/documents/__init__.py
+++ b/ucoinpy/documents/__init__.py
@@ -9,11 +9,8 @@ from ..key import Base58Encoder
 
 
 class Document:
-    def __init__(self, timestamp):
-        self.timestamp = timestamp
-
-    def ts(self):
-        return "META:TS:{0}".format(self.timestamp)
+    def __init__(self, version):
+        self.version = version
 
     def content(self):
         return ""
diff --git a/ucoinpy/documents/block.py b/ucoinpy/documents/block.py
index 33d1e043f6a247aeab74a169d7921fc88aceddb1..c3fc78a82a51d300d7721f588d50034d7825c31f 100644
--- a/ucoinpy/documents/block.py
+++ b/ucoinpy/documents/block.py
@@ -75,7 +75,67 @@ BOTTOM_SIGNATURE
         self.excluded = excluded
         self.certifications = certifications
         self.transactions = transactions
-
+        
+    @classmethod
+    def from_raw(cls, raw):
+        #TODO : Parsing
+        lines = raw.splitlines(True)
+        
+        n = 0
+        version_re = re.compile("Version: ([0-9]+)\n") 
+        version = version_re.match(lines[n])
+        n = 1
+        currency_re = re.compile("Currency: ([0-9a-zA-Z_\-]+)\n"
+        currency = currency_re.match(lines[n])
+        
+        n = 2
+        noonce_re = re.compile("Nonce: ([0-9]+)\n") 
+        noonce = nonce_re.match(lines[n])
+        
+        n = 3
+        number_re = re.compile("Number: ([0-9]+)\n") 
+        number = number_re.match(lines[n])
+        
+        n = 4
+        powmin_re = re.compile("PoWMin: ([0-9]+)\n") 
+        powmin = powmin.match(lines[n])        
+        
+        n = 5
+        time_re = re.compile("Time: ([0-9]+)\n") 
+        time = time.match(lines[n]) 
+        
+        n = 6
+        mediantime_re = re.compile("MedianTime: ([0-9]+)\n") 
+        mediantime = mediantime_re.match(line[n])
+        
+        n = 7
+        ud_re = re.compile("UniversalDividend: ([0-9]+)\n") 
+        ud = ud_re.match(line[n])
+        
+        n = 8
+        issuer_re = re.compile("Issuer: ([1-9A-Za-z][^OIl]{43,45})\n")
+        issuer = issuer_re.match(line[n])
+        
+        n = 9
+        previoushash_re = re.compile("PreviousHash: ([0-9a-fA-F]{5,40})\n")
+        prev_hash = previoushash_re.match(line[n])
+        
+        n = 10
+        previousissuer_re = re.compile("PreviousIssuer: ([1-9A-Za-z][^OIl]{43,45})\n")
+        prev_issuer = previousissuer_re.match(line[n])
+        
+        parameters = ""
+        members_count = ""
+        identities = ""
+        joiners = ""
+        actives = ""
+        leavers = ""
+        excluded = ""
+        certifications = ""
+        transactions = ""
+        
+        return cls([])
+        
     def content(self):
         doc = """
 Version: {0}
diff --git a/ucoinpy/documents/certification.py b/ucoinpy/documents/certification.py
index c5f0f09c028a7a85624fb661ec2f0daed6ba6c72..2ad28da18257094df21f47af4e33d99e12d38f11 100644
--- a/ucoinpy/documents/certification.py
+++ b/ucoinpy/documents/certification.py
@@ -13,12 +13,21 @@ class SelfCertification(Document):
 
     def __init__(self, identifier):
         self.identifier = identifier
-
+        self.timestamp = timestamp
+        
+    @classmethod
+    def from_raw(cls, raw):
+        #TODO : Parsing
+        return cls()
+
+     def ts(self):
+        return "META:TS:{0}".format(self.timestamp)
+        
     def uid(self):
         return "UID:{0}".format(self.identifier)
 
     def content(self):
-        return "{0}\n{1}".format(self.uid(), self.timestamp())
+        return "{0}\n{1}".format(self.uid(), self.ts())
 
 
 class Certification(Document):
@@ -33,8 +42,14 @@ class Certification(Document):
         self.selfcert = selfcert
         self.blockid = blockid
 
-    def timestamp(self):
+        
+    @classmethod
+    def from_raw(cls, raw):
+        #TODO : Parsing
+        return cls()
+
+    def ts(self):
         return "META:TS:{0}".format(self.blockid)
 
     def content(self):
-        return "{0}\n{1}".format(self.selfcert.content(), self.timestamp())
+        return "{0}\n{1}".format(self.selfcert.content(), self.ts())
diff --git a/ucoinpy/documents/membership.py b/ucoinpy/documents/membership.py
index ae174521bd1bafa9efb0679104f2f28c64745c3c..05ddb7df53b4ccc23df7279a6fe05afbcf19ef23 100644
--- a/ucoinpy/documents/membership.py
+++ b/ucoinpy/documents/membership.py
@@ -32,6 +32,14 @@ class Membership(object):
         self.userid = userid
         self.cert_ts = cert_ts
 
+        
+    @classmethod
+    def from_raw(cls, raw):
+        #TODO : Parsing
+        return cls()
+
+        
+        
     def content(self):
         return """
 Version: {0}
diff --git a/ucoinpy/documents/peer.py b/ucoinpy/documents/peer.py
index 082c06ef5d2e7655872c8a75167f9051e8256fbb..d696665bd47f2c89689476f296e9e26a15ead25d 100644
--- a/ucoinpy/documents/peer.py
+++ b/ucoinpy/documents/peer.py
@@ -29,6 +29,11 @@ class Peer(Document):
         self.pubkey = pubkey
         self.blockid = blockid
         self.endpoints = endpoints
+        
+    @classmethod
+    def from_raw(cls, raw):
+        #TODO : Parsing
+        return cls()
 
     def content(self):
         doc = """
diff --git a/ucoinpy/documents/status.py b/ucoinpy/documents/status.py
index dd11ce1af153ef774793acf3ef9b5676f807a6ae..3913e0512d86bfa15dd88cb794975b7575fd99c2 100644
--- a/ucoinpy/documents/status.py
+++ b/ucoinpy/documents/status.py
@@ -29,6 +29,11 @@ class Status(Document):
         self.sender = sender
         self.recipient = recipient
 
+    @classmethod
+    def from_raw(cls, raw):
+        #TODO : Parsing
+        return cls()
+
     def content(self):
         return '''
 Version: {0}
diff --git a/ucoinpy/documents/transaction.py b/ucoinpy/documents/transaction.py
index 10fa5d690c7f3f647792fd95f10ab620ea43cfe9..beaf476469305ad99bbc9f2edc88c06c3cdb49dd 100644
--- a/ucoinpy/documents/transaction.py
+++ b/ucoinpy/documents/transaction.py
@@ -37,6 +37,11 @@ SIGNATURES
         self.outputs = outputs
         self.comment = comment
 
+    @classmethod
+    def from_raw(cls, raw):
+        #TODO : Parsing
+        return cls()
+
     def content(self):
         doc = """
 Version: {0}