anchor.diff:          (BufCnt == 0) -> State;                                    % no data, nothing to do, keep stack
           (BufBot == GuiBot) andalso (GuiCol == false) -> State;     % no new data, nothing to do, keep stack
           (GuiCnt == 0) ->                                            % (re)initialize to buffer bottom
  -            ?Debug("~p stack exec ~p", [autofilling,<<"more">>]),
               serve_bot(autofilling, <<">|">>, State#state{stack = undefined, replyToFun = ReplyTo});
           true ->
               % serve new data at the bottom of the buffer, ask client to come back
  -            ?Debug("Guicnt != 0 ~p ~p", [autofilling,<<"more">>]),
               gui_append(#gres{state = autofilling, loop = <<"more">>, focus = -1}, State#state{stack = undefined, replyToFun=ReplyTo})
       end;
   serve_stack(_SN, #state{bufCnt=BufCnt,bufBot=BufBot,guiCnt=GuiCnt,guiBot=GuiBot,guiCol=GuiCol, stack = {button, <<">|">>, ReplyTo}} = State) ->
  
positive.code:         (BufCnt == 0) -> State;                                    % no data, nothing to do, keep stack
          (BufBot == GuiBot) andalso (GuiCol == false) -> State;     % no new data, nothing to do, keep stack
          (GuiCnt == 0) ->                                            % (re)initialize to buffer bottom
              ?Debug("~p stack exec ~p", [autofilling,<<">|">>]),
              serve_bot(autofilling, <<">|">>, State#state{stack = undefined, replyToFun = ReplyTo});
          true ->
              % serve new data at the bottom of the buffer, ask client to come back
              ?Debug("Guicnt != 0 ~p ~p", [autofilling,<<"more">>]),
              gui_append(#gres{state = autofilling, loop = <<"more">>, focus = -1}, State#state{stack = undefined, replyToFun=ReplyTo})
      end;
  serve_stack(filling, #state{stack = {button, <<"more">>, ReplyTo}} = State) ->
  
negative.code:     State1 = data_append(filling, {Recs,false},State0),
      NewBufBot = State1#state.bufBot,
      NewGuiBot = State1#state.guiBot,
      % ?Info("filling rows false ~p ~p ~p",[length(Recs),NewBufBot,NewGuiBot]),
      State2 = if
          (Button == <<">">>) ->      prefetch(filling,State1);
          (Button == <<">>">>) ->     prefetch(filling,State1);
  