rewriting buy_sub and adding a except for KeyError on node update

buy_sub() is now exception oriented and has unit tests