I am trying to update my process's state on a 10 second timer.

```
-define(INTERVAL, 3000).

start_link() ->
    gen_server:start_link(?MODULE, [], []).

action(Pid, Action) ->
  gen_server:call(Pid, Action).

init([]) -> 
  erlang:send_after(?INTERVAL, self(), trigger),
  {ok, temple:new()}.

```

what I want to do is call this

```
handle_call({fight}, _From, Temple) ->
  NewTemple = temple:fight(Temple),
  {reply, NewTemple, NewTemple};

```

So I try

```
handle_info(trigger, _State) ->
   land:action(self(), {fight}),
   erlang:send_after(?INTERVAL, self(), trigger);

```

but I get

```
=ERROR REPORT==== 4-Dec-2016::19:00:35 ===
** Generic server <0.400.0> terminating
** Last message in was trigger
** When Server state == {{dict,0,16,16,8,80,48,
                               {[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
                                []},
                               {{[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],
                                 []}}},
                         []}
** Reason for termination ==
** {function_clause,[{land,terminate,
                           [{timeout,{gen_server,call,[<0.400.0>,{fight}]}},
                            {{dict,0,16,16,8,80,48,
                                   {[],[],[],[],[],[],[],[],[],[],[],[],[],[],
                                    [],[]},
                                   {{[],[],[],[],[],[],[],[],[],[],[],[],[],
                                     [],[],[]}}},
                             []}],
                           [{file,"src/land.erl"},{line,47}]}

```