anchor.diff:      ?debug("~p:handle_info(data): Data: ~p", [ ?MODULE, Data]),
       ?debug("~p:handle_info(data): From: ~p:~p ", [ ?MODULE, IP, Port]),
   
  -    case count_brackets(Data, PST) of
  -	{ incomplete, NPST } ->
  +    case extract_json(Data, PST) of
  +	{ [], NPST } ->
   	    ?debug("~p:handle_info(data incomplete)", [ ?MODULE]),
   	    inet:setopts(Sock, [{active, once}]),
   	    {noreply, State#st { pst = NPST} };
   
  -	{complete, Processed, NPST } ->
  -	    ?debug("~p:handle_info(data complete): Processed: ~p", [ ?MODULE, Processed]),
  +	{ JSONElements, NPST } ->
  +	    ?debug("~p:handle_info(data complete): Processed: ~p", [ ?MODULE, JSONElements]),
   	    FromPid = self(),
  -	    spawn(fun() -> Mod:Fun(FromPid, IP, Port, 
  -				   data, Processed, Arg) end),
  +	    spawn(fun() -> [ Mod:Fun(FromPid, IP, Port, 
  +				     data, SingleElem, Arg) || SingleElem <- JSONElements ]
  +		  end),
   	    inet:setopts(Sock, [ { active, once } ]),
   	    {noreply, State#st { pst = NPST} }
       end;
  
positive.code: %%%===================================================================
  
  
  count_brackets([${ | Rem], 
  	       #pst { 
  		  buffer = Buffer, 
  
negative.code: 
      { complete, lists:reverse(Buffer), 
        PSt#pst {
  	buffer = Rem,
  	balance = start
         } 
      };
  