anchor.diff:  handle_call(X, _From, State) -> {reply, {unknown, X}, State}.
   -spec code_change(term(), state(), term()) -> {ok, state()}.
   code_change(_OldVsn, State, _Extra) -> {ok, State}.
  +
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +%%% Internal Functions
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +create_screen(SerpentName) ->
  +  wx:new(),
  +  Frame =
  +    wxFrame:new(
  +      wx:null(), ?wxID_ANY, binary_to_list(SerpentName),
  +      [ {size, {320, 150}}
  +      , {style, ?wxDEFAULT_FRAME_STYLE band (bnot ?wxRESIZE_BORDER)}]),
  +
  +  IconFile = "www/assets/favicon.ico",
  +  Icon = wxIcon:new(IconFile, [{type, ?wxBITMAP_TYPE_ICO}]),
  +  wxFrame:setIcon(Frame, Icon),
  +  wxIcon:destroy(Icon),
  +
  +  wxFrame:createStatusBar(Frame,[]),
  +  ok = wxFrame:setStatusText(Frame, "Use arrow keys to move", []),
  +
  +  wxFrame:connect(Frame, close_window, [{skip, true}]),
  +
  +  Panel = wxPanel:new(Frame),
  +  wxPanel:connect(Panel, key_up),
  +
  +  Label = wxStaticText:new(
  +    Panel, ?wxID_ANY, "MOVE!",
  +    [ {style, ?wxALIGN_CENTER_HORIZONTAL bor ?wxALIGN_CENTER_VERTICAL}
  +    , {size, {320, 200}}
  +    , {pos, {0, 0}}
  +    ]),
  +  Font = wxFont:new(90, ?wxFONTFAMILY_SWISS, ?wxNORMAL, ?wxBOLD, []),
  +  wxStaticText:setFont(Label, Font),
  +  {Frame, Label}.
  
positive.code:         , tick    = Tick
          } = State,
  
    wxStaticText:setLabel(Label, atom_to_list(Direction)),
    lager:notice("Key Press: ~p~n", [lager:pr(KeyCode, ?MODULE)]),
  
    ok = spts_hdp:send(
          UdpSocket, spts_hdp:update(Tick, SerpentId, Tick, Direction)),
  
    {noreply, State};
  handle_event(#wx{event = #wxClose{}}, State = #state{frame = Frame}) ->
    ok = wxFrame:setStatusText(Frame, "Closing...",[]),
    wxWindow:destroy(Frame),
    {stop, normal, State};
  
negative.code:   {noreply, state()} | {stop, normal, state()}.
  handle_info(
    {udp, UdpSocket, _Ip, _Port, Packet}, State = #state{socket = UdpSocket}) ->
    {server_update, Tick, Tick, {Tick, _Diffs}} = spts_hdp:parse(Packet),
    %% @todo do stuff with the Diffs like detecting the game ended
    {noreply, State#state{tick = Tick}};
  