anchor.diff:          {From, clear_callback} ->
               From ! {?MODULE, ok},
               loop(Parent, S#state{callback=undefined});
  +	{From, set_options, Options} ->
  +            case validate_options(Options) of
  +                Validated when is_list(Validated) ->
  +                    From ! {?MODULE, ok},
  +                    loop(Parent, S#state{options=Validated});
  +                _ ->
  +		    From ! {?MODULE, {error, {bad_options, Options}}},
  +                    loop(Parent, S)
  +            end;
  +        {From, get_options} ->
  +            Res = case S#state.options of
  +                      [] -> none;
  +                      Cb -> {ok, Cb}
  +                  end,
  +            From ! {?MODULE, Res},
  +            loop(Parent, S);
   	{From, cycle} ->
   	    %% Calls back to loop
   	    do_cycle_port_program(From, Parent, S);
  
positive.code: 	{'EXIT', Port, Reason} when Reason =/= badsig ->
  	    exit(normal)
      end.
  
  do_cycle_port_program(Caller, Parent, #state{port=Port} = S) ->
      unregister(?HEART_PORT_NAME),
  
negative.code:     case catch start_portprogram() of
  	{ok, Port} ->
  	    Starter ! {ok, self()},
  	    loop(Parent, #state{port=Port, cmd=[], options=[]});
  	no_heart ->
  	    Starter ! {no_heart, self()};
  	error ->
  