anchor.diff:  
   
   % commands handled generically
  -process_call({[<<"save_view">>], _} = Cmd, _Adapter, From, #state{} = State) ->
  -    gen_adapter:process_cmd(Cmd, From, undefined),
  -    State;
  -process_call({[<<"get_query">>], _} = Cmd, _Adapter, From, #state{} = State) ->
  -    gen_adapter:process_cmd(Cmd, From, undefined),
  -    State;
  -process_call({[<<"parse_stmt">>], _} = Cmd, _Adapter, From, #state{} = State) ->
  -    gen_adapter:process_cmd(Cmd, From, undefined),
  +process_call({[C], ReqData}, _Adapter, From, #state{} = State) when
  +      C =:= <<"parse_stmt">>;
  +      C =:= <<"get_query">>;
  +      C =:= <<"save_view">> ->
  +    BodyJson = jsx:decode(ReqData),
  +    gen_adapter:process_cmd({[C], BodyJson}, From, undefined),
       State;
   
   process_call({Cmd, ReqData}, Adapter, From, #state{adapt_priv = AdaptPriv} = State) ->
  
positive.code:     ?Error([{user, User}], "~p received unknown msg ~p for ~p", [?MODULE, Info, User]),
      {noreply, State}.
  
  terminate(Reason, #state{user=User}) ->
      ?Info([{user, User}], "~p terminating ~p session for ~p", [?MODULE, {self(), User}, Reason]).
  
  code_change(_OldVsn, State, _Extra) -> {ok, State}.
  
negative.code:     ?Error([{user, _User}], "~p received unknown cast ~p for ~p", [_Unknown, _User]),
      {noreply, State}.
  
  handle_info(die, #state{user=_User}=State) ->
      ?Error([{user, _User}], "terminating session idle for ~p ms", [?SESSION_IDLE_TIMEOUT]),
      {stop, timeout, State};
  handle_info(logout, #state{user = User} = State) ->
      ?Debug("terminating session of logged out user ~p", [User]),
      {stop, normal, State};
  