anchor.diff:  -compile([{parse_transform, lager_transform}]).
   
   -define(SERVER, ?MODULE).
  +-define(INTERVAL, 1000). %% 1000 millisecond = 1 second
   
   -record(state, {
  -          name = undefined :: barile:task_name() | undefined,
  -          schedule :: barile:schedule(),
  -          detail :: barile:detail()
  +          name     = undefined   :: barile:task_name(),
  +          schedule = undefined   :: barile:schedule(),
  +          detail   = undefined   :: barile:detail(),
  +          command  = ""          :: term(),
  +          status   = inactivated :: inactivated | activated 
            }).
   
   %%%===================================================================
   %%% API
   %%%===================================================================
  -execute(Cmd) ->
  -    execute_cmd(Cmd).
  +-spec inactivate(pid()) -> term().
  +inactivate(Pid) -> 
  +    gen_server:call(Pid, {inactivate}).
  +
  +-spec activate(pid()) -> term().
  +activate(Pid) -> 
  +    gen_server:call(Pid, {activate}).
   
   %%--------------------------------------------------------------------
   %% @doc
  
positive.code: %% @end
  %%--------------------------------------------------------------------
  init([Name, Schedule, Detail]) ->
      {ok, #state{ name = Name, schedule = Schedule, detail = Detail }}.
  
  %%--------------------------------------------------------------------
  %% @private
  
negative.code: %%%===================================================================
  %%% Internal functions
  %%%===================================================================
  execute_cmd(Cmd) ->
      lager:debug("Starting task command: ~ts", [Cmd]),
      try erlang:open_port({spawn, Cmd}, [exit_status, stderr_to_stdout, binary, stream]) of
  