diff --git a/beem/account.py b/beem/account.py
index 57dd80b2730c463cfb50074d5f3fbb35d800f230..505d7995b46f7fdfb4d70798f1cfb8e663674da2 100644
--- a/beem/account.py
+++ b/beem/account.py
@@ -48,7 +48,7 @@ class Account(BlockchainObject):
 
             >>> from beem.account import Account
             >>> from beem import Steem
-            >>> stm = Steem("https://steemd.minnowsupportproject.org")
+            >>> stm = Steem()
             >>> account = Account("gtg", steem_instance=stm)
             >>> print(account)
             <Account gtg>
@@ -610,7 +610,7 @@ class Account(BlockchainObject):
 
                 >>> from beem.account import Account
                 >>> from beem import Steem
-                >>> stm = Steem("https://steemd.minnowsupportproject.org")
+                >>> stm = Steem()
                 >>> account = Account("steemit", steem_instance=stm)
                 >>> account.get_feed(0, 1, raw_data=True)
                 []
@@ -666,7 +666,7 @@ class Account(BlockchainObject):
 
                 >>> from beem.account import Account
                 >>> from beem import Steem
-                >>> stm = Steem("https://steemd.minnowsupportproject.org")
+                >>> stm = Steem()
                 >>> account = Account("steemit", steem_instance=stm)
                 >>> account.get_feed_entries(0, 1)
                 []
@@ -689,7 +689,7 @@ class Account(BlockchainObject):
 
                 >>> from beem.account import Account
                 >>> from beem import Steem
-                >>> stm = Steem("https://steemd.minnowsupportproject.org")
+                >>> stm = Steem()
                 >>> account = Account("steemit", steem_instance=stm)
                 >>> entry = account.get_blog_entries(0, 1, raw_data=True)[0]
                 >>> print("%s - %s - %s - %s" % (entry["author"], entry["permlink"], entry["blog"], entry["reblog_on"]))
@@ -713,7 +713,7 @@ class Account(BlockchainObject):
 
                 >>> from beem.account import Account
                 >>> from beem import Steem
-                >>> stm = Steem("https://steemd.minnowsupportproject.org")
+                >>> stm = Steem()
                 >>> account = Account("steemit", steem_instance=stm)
                 >>> account.get_blog(0, 1)
                 [<Comment @steemit/firstpost>]
@@ -773,7 +773,7 @@ class Account(BlockchainObject):
 
                 >>> from beem.account import Account
                 >>> from beem import Steem
-                >>> stm = Steem("https://steemd.minnowsupportproject.org")
+                >>> stm = Steem()
                 >>> account = Account("steemit", steem_instance=stm)
                 >>> account.get_blog_authors()
                 []
@@ -1352,7 +1352,7 @@ class Account(BlockchainObject):
 
                 >>> from beem.account import Account
                 >>> from beem import Steem
-                >>> stm = Steem("https://steemd.minnowsupportproject.org")
+                >>> stm = Steem()
                 >>> account = Account("beem.app", steem_instance=stm)
                 >>> account.get_tags_used_by_author()
                 []
@@ -1410,7 +1410,7 @@ class Account(BlockchainObject):
 
                 >>> from beem.account import Account
                 >>> from beem import Steem
-                >>> stm = Steem("https://steemd.minnowsupportproject.org")
+                >>> stm = Steem()
                 >>> account = Account("beem.app", steem_instance=stm)
                 >>> account.get_account_votes()
                 []
diff --git a/beem/blockchain.py b/beem/blockchain.py
index 8672220489bc48fe34446f9ede21e702320d68b1..27ef028387da768c39edb1ff8a60b63dc4ddba5d 100644
--- a/beem/blockchain.py
+++ b/beem/blockchain.py
@@ -17,7 +17,7 @@ from time import sleep
 import logging
 from datetime import datetime, timedelta
 from .utils import formatTimeString, addTzInfo
-from .block import Block
+from .block import Block, BlockHeader
 from beemapi.node import Nodes
 from beemapi.steemnoderpc import SteemNodeRPC
 from .exceptions import BatchedCallsNotSupported, BlockDoesNotExistsException, BlockWaitTimeExceeded, OfflineHasNoRPCException
@@ -325,7 +325,7 @@ class Blockchain(object):
         date = addTzInfo(date)
         if estimateForwards:
             block_offset = 10
-            first_block = Block(block_offset, steem_instance=self.steem)
+            first_block = BlockHeader(block_offset, steem_instance=self.steem)
             time_diff = date - first_block.time()
             block_number = math.floor(time_diff.total_seconds() / self.block_interval + block_offset)
         else:
@@ -343,7 +343,7 @@ class Blockchain(object):
             second_last_block_time_diff_seconds = 10
             
             while block_time_diff.total_seconds() > self.block_interval or block_time_diff.total_seconds() < -self.block_interval:
-                block = Block(block_number, steem_instance=self.steem)
+                block = BlockHeader(block_number, steem_instance=self.steem)
                 second_last_block_time_diff_seconds = last_block_time_diff_seconds
                 last_block_time_diff_seconds = block_time_diff.total_seconds()
                 block_time_diff = date - block.time()
diff --git a/beem/cli.py b/beem/cli.py
index 6d82fcd819050701978d9ba8de395a6103b2b558..87d073eee107809ed7a3b1a414a75579ffde3ad9 100644
--- a/beem/cli.py
+++ b/beem/cli.py
@@ -431,7 +431,7 @@ def updatenodes(show, test, only_https, only_wss, only_appbase, only_non_appbase
     t.align = "l"
     nodelist = NodeList()
     nodelist.update_nodes(steem_instance=stm)
-    nodes = nodelist.get_nodes(normal=not only_appbase, appbase=not only_non_appbase, wss=not only_https, https=not only_wss)
+    nodes = nodelist.get_nodes(exclude_limited=False, normal=not only_appbase, appbase=not only_non_appbase, wss=not only_https, https=not only_wss)
     if show or test:
         sorted_nodes = sorted(nodelist, key=lambda node: node["score"], reverse=True)
         for node in sorted_nodes:
diff --git a/beem/comment.py b/beem/comment.py
index 51f88c628f9097ffd4c39d6d9bdf1220030c0b93..2c0b501095a0d95c0c72e099e4668fa687c8c992 100644
--- a/beem/comment.py
+++ b/beem/comment.py
@@ -36,7 +36,7 @@ class Comment(BlockchainObject):
         >>> from beem.comment import Comment
         >>> from beem.account import Account
         >>> from beem import Steem
-        >>> stm = Steem("https://steemd.minnowsupportproject.org")
+        >>> stm = Steem()
         >>> acc = Account("gtg", steem_instance=stm)
         >>> authorperm = acc.get_blog(limit=1)[0]["authorperm"]
         >>> c = Comment(authorperm)
diff --git a/beem/nodelist.py b/beem/nodelist.py
index 14a1bdd4154d193d5bf19be3f753b7ad67e6eb8e..b9026b9a93698b1643dcad23050df831602db4ca 100644
--- a/beem/nodelist.py
+++ b/beem/nodelist.py
@@ -375,7 +375,7 @@ class NodeList(list):
             new_nodes.append(new_node)
         super(NodeList, self).__init__(new_nodes)
 
-    def get_nodes(self, exclude_limited=True, dev=False, testnet=False, testnetdev=False, wss=True, https=True, not_working=False, normal=True, appbase=True):
+    def get_nodes(self, exclude_limited=False, dev=False, testnet=False, testnetdev=False, wss=True, https=True, not_working=False, normal=True, appbase=True):
         """ Returns nodes as list
 
             :param bool exclude_limited: When True, limited nodes are excluded
diff --git a/beem/version.py b/beem/version.py
index 90ce00a744fc77ac04c7005f9f0d748773c492c6..2013445b408233933cb61537a342b599eef5897c 100644
--- a/beem/version.py
+++ b/beem/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.20.22'
+version = '0.20.23'
diff --git a/beem/vote.py b/beem/vote.py
index 4cdde3ad7ed96ad49e59417a1a6c12edadbccc74..f8c4bafaa81e8ee674dce9e4208b1233b542b20d 100644
--- a/beem/vote.py
+++ b/beem/vote.py
@@ -32,7 +32,7 @@ class Vote(BlockchainObject):
 
            >>> from beem.vote import Vote
            >>> from beem import Steem
-           >>> stm = Steem("https://steemd.minnowsupportproject.org")
+           >>> stm = Steem()
            >>> v = Vote("@gtg/steem-pressure-4-need-for-speed|gandalf", steem_instance=stm)
 
     """
diff --git a/beemapi/graphenerpc.py b/beemapi/graphenerpc.py
index d4a2c8eeac0da78fb1bb05e2c2be5ce9c96a7739..cbcd0a784b398077e3ab676a4bb2204afde85098 100644
--- a/beemapi/graphenerpc.py
+++ b/beemapi/graphenerpc.py
@@ -414,7 +414,7 @@ class GrapheneRPC(object):
 
         ret = {}
         try:
-            ret = json.loads(reply, strict=False)
+            ret = json.loads(reply, strict=False, encoding="utf-8")
         except ValueError:
             self._check_for_server_error(reply)
 
diff --git a/beemapi/steemnoderpc.py b/beemapi/steemnoderpc.py
index 36f0758463a163470f0681457f0248bddb4bf2cc..638970c0f7260c8f5bf7512798d6910324575bca 100644
--- a/beemapi/steemnoderpc.py
+++ b/beemapi/steemnoderpc.py
@@ -117,8 +117,11 @@ class SteemNodeRPC(GrapheneRPC):
             raise exceptions.NoMethodWithName(msg)
         elif re.search("Could not find API", msg):
             if self._check_api_name(msg):
-                # self._switch_to_next_node(msg, "ApiNotSupported")
-                raise exceptions.ApiNotSupported(msg)
+                if self.nodes.working_nodes_count > 1 and self.num_retries > -1:
+                    self._switch_to_next_node(msg, "ApiNotSupported")
+                    doRetry = True
+                else:
+                    raise exceptions.ApiNotSupported(msg)
             else:
                 raise exceptions.NoApiWithName(msg)
         elif re.search("irrelevant signature included", msg):
@@ -146,9 +149,12 @@ class SteemNodeRPC(GrapheneRPC):
             raise exceptions.UnkownKey(msg)
         elif re.search("Assert Exception:v.is_object(): Input data have to treated as object", msg):
             raise exceptions.UnhandledRPCError("Use Operation(op, appbase=True) to prevent error: " + msg)
-        # elif re.search("Client returned invalid format. Expected JSON!", msg):
-        #     self._switch_to_next_node(msg)
-        #    doRetry = True
+        elif re.search("Client returned invalid format. Expected JSON!", msg):
+            if self.nodes.working_nodes_count > 1  and self.num_retries > -1:
+                self._switch_to_next_node(msg)
+                doRetry = True
+            else:
+                raise exceptions.UnhandledRPCError(msg)
         elif msg:
             raise exceptions.UnhandledRPCError(msg)
         else:
diff --git a/beemapi/version.py b/beemapi/version.py
index 90ce00a744fc77ac04c7005f9f0d748773c492c6..2013445b408233933cb61537a342b599eef5897c 100644
--- a/beemapi/version.py
+++ b/beemapi/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.20.22'
+version = '0.20.23'
diff --git a/beembase/version.py b/beembase/version.py
index 90ce00a744fc77ac04c7005f9f0d748773c492c6..2013445b408233933cb61537a342b599eef5897c 100644
--- a/beembase/version.py
+++ b/beembase/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.20.22'
+version = '0.20.23'
diff --git a/beemgraphenebase/version.py b/beemgraphenebase/version.py
index 90ce00a744fc77ac04c7005f9f0d748773c492c6..2013445b408233933cb61537a342b599eef5897c 100644
--- a/beemgraphenebase/version.py
+++ b/beemgraphenebase/version.py
@@ -1,2 +1,2 @@
 """THIS FILE IS GENERATED FROM beem SETUP.PY."""
-version = '0.20.22'
+version = '0.20.23'
diff --git a/setup.py b/setup.py
index 437d5e7c38c72173e7c32f487f16d3cf6ec40210..e1020c920de119af4bbd8ae3832edcff199e2c13 100755
--- a/setup.py
+++ b/setup.py
@@ -16,7 +16,7 @@ except LookupError:
     ascii = codecs.lookup('ascii')
     codecs.register(lambda name, enc=ascii: {True: enc}.get(name == 'mbcs'))
 
-VERSION = '0.20.22'
+VERSION = '0.20.23'
 
 tests_require = ['mock >= 2.0.0', 'pytest', 'pytest-mock', 'parameterized']