anchor.diff:  %%%===================================================================
   %%% Internal functions
   %%%===================================================================
  -do_get_devices_state(State = #state{cache = Cache}) ->
  -  {reply, {ok, ets:tab2list(Cache)}, State}.
   
  -do_get_device_state_by_id(State = #state{cache = Cache}, Id) ->
  -  case ets:lookup(Cache, Id) of
  -    [] ->
  -      {reply, {error, <<"Access is denied">>}, State};
  -    [Item|_] ->
  -      {reply, {ok, Item}, State}
  -  end.
  -
  -do_link_device_state(State = #state{cache = Cache}, DeviceState) ->
  -  case ets:insert_new(Cache, DeviceState) of
  -    true ->
  -      {reply, {ok, DeviceState}, State};
  -    false ->
  -      {reply, {error, <<"Error link device state">>}, State}
  -  end.
  -
  -do_unlink_device_state(State = #state{cache = Cache}, DeviceState) ->
  -  case ets:delete(Cache, DeviceState#device_state.deviceId) of
  -    true ->
  -      {reply, {ok, DeviceState}, State};
  -    false -> {reply, {error, <<"Error unlink device state">>}, State}
  -  end.
  -
  -do_execute_command(State = #state{cache = Cache}, Command) ->
  -  case ets:lookup(Cache, Command#command.deviceId) of
  -    [] ->
  -      {reply, {error, <<"Access is denied">>}, State};
  -    [DeviceState|_] ->
  -      {reply, {ok, DeviceState}, State}
  -  end.
  +do_execute_command(State, Command) ->
  +  {reply, em_proc:send(Command#command.deviceId, {command, Command}), State}.
  
positive.code:   {noreply, NewState :: #state{}, timeout() | hibernate} |
    {stop, Reason :: term(), Reply :: term(), NewState :: #state{}} |
    {stop, Reason :: term(), NewState :: #state{}}).
  handle_call({get}, _From, State) ->
    do_get_devices_state(State);
  handle_call({get, Id}, _From, State) when is_integer(Id) ->
    do_get_device_state_by_id(State, Id);
  handle_call({link, DeviceState}, _From, State) ->
    do_link_device_state(State, DeviceState);
  handle_call({unkink, DeviceState}, _From, State) ->
    do_unlink_device_state(State, DeviceState);
  handle_call({execute, Command}, _From, State) ->
    do_execute_command(State, Command);
  handle_call(_Request, _From, State) ->
  
negative.code: -export([start_link/0]).
  
  -export([
    execute/1
  ]).
  
  