diff --git a/duniterpy/helpers/blockchain.py b/duniterpy/helpers/blockchain.py
index 0e4e10901621e5da1d647f69f4a7815263f70b7e..46f4fdeed362165a4b63eedcb17539f6e95f026e 100644
--- a/duniterpy/helpers/blockchain.py
+++ b/duniterpy/helpers/blockchain.py
@@ -77,6 +77,18 @@ class JsonBlockchain:
             self.current_block_in_chunk - 1
         ]  # return block (before incrementation)
 
+    def current_block(self):
+        """returns current block as a duniterpy block document"""
+        json_block = self.chunk[self.current_block_in_chunk]
+        return Block.from_parsed_json(json_block)
+
+    def get_block_number(self, number):
+        """get one precise block (do not use for iteration)"""
+        self.current_chunk = number // CHUNK_SIZE
+        self.current_block_in_chunk = number % CHUNK_SIZE
+        self.parsechunk()
+        return self.current_block()
+
 
 def Blockchain(json_blockchain):
     """convert json to duniterpy block document"""
@@ -85,10 +97,16 @@ def Blockchain(json_blockchain):
         yield Block.from_parsed_json(jb)
 
 
+def load_json(path=DEFAULT_PATH):
+    """returns a JsonBlockchain object"""
+    path = pathlib.Path("~").joinpath(path).expanduser()  # expand path
+    jbc = JsonBlockchain(path)  # gets an iterator over json blockchain
+    return jbc
+
+
 def load(path=DEFAULT_PATH):
     """returns an iterator allowing to browse all the blockchain
     in practice, it will load chunk by chunk and only keep one in memory at a time"""
-    path = pathlib.Path("~").joinpath(path).expanduser()  # expand path
-    jbc = JsonBlockchain(path)  # gets an iterator over json blockchain
+    jbc = load_json(path)
     bc = Blockchain(jbc)  # convert it to an iterator over blocks
     return bc  # returns