anchor.diff:  
   
   start_apps() ->
  -	application:ensure_all_started(gun),
  +    application:ensure_all_started(gun),
       application:ensure_all_started(lager).
       
       
  -start_link() ->
  +start_link(CallbackModule) ->
  +    start_link(undefined, CallbackModule, undefined, []).
  +    
  +    
  +start_link(Name, CallbackModule)
  +        when  is_atom(Name)
  +            , is_atom(CallbackModule)  ->
  +    start_link(Name, CallbackModule, undefined, []);
  +    
  +start_link(CallbackModule, Url)
  +        when  is_atom(CallbackModule)
  +            , is_list(Url)  ->
  +    start_link(undefined, CallbackModule, Url, []).
  +
  +    
  +start_link(Name, CallbackModule, Url)
  +        when  is_atom(Name)
  +            , is_atom(CallbackModule)
  +            , is_list(Url)  ->
  +    start_link(Name, CallbackModule, Url, []);
  +    
  +start_link(CallbackModule, Url, Opts)
  +        when  is_atom(CallbackModule)
  +            , is_list(Url)
  +            , is_list(Opts)  ->
  +    start_link(undefined, CallbackModule, Url, Opts).    
  +    
  +    
  +start_link(Name, CallbackModule, Url, Opts)
  +        when  is_atom(Name)
  +            , is_atom(CallbackModule)
  +            , is_list(Url) orelse Url =:= undefined
  +            , is_list(Opts)  ->
       start_apps(),
  -    gen_server:start_link(?MODULE, [undefined, undefined], []).
  +    gen_server_base:start_link_name(Name, ?MODULE, [CallbackModule, Url, Opts]).    
   
       
   child_spec(Id, _Args) -> ?SERVICE_SPEC(Id, ?MODULE, []).
  
positive.code: 
  % "wss://push.planetside2.com/streaming?environment=ps2&service-id=s:example"
  
  init([undefined, Opts]) ->
  	init([]);
  	
  init([Url, undefined]) ->
  	init();
  	
  init([Url, Opts]) ->
  	SchemeDefs = http_uri:scheme_defaults() ++ [{ws, 80}, {wss, 443}],
  
      case http_uri:parse(Url, [{scheme_defaults, SchemeDefs}]) of
  		{error, Reason} ->
  			{stop, {bad_format, Reason}}
  			
  	;	{ok, {Scheme, _Userinfo, Host, Port, ParseHeaders, ParseBody} } ->
  			{ok, Pid} = gun:open(Host, Port),
  			Mref = monitor(process, Pid),
      
  			{ ok
  			, #state{ gunner = Pid
  					, mref = Mref
  					, host = Host
  					, port = Port
  					, request = ParseHeaders ++ ParseBody
  					}
  			}
  	end.
  
  
      
  %%%%% ------------------------------------------------------- %%%%%
  
negative.code:     , request                           :: string()
      , mode          = disconnected      :: client_mode()
      , json_decode   = false             :: boolean()
      , options       = []                :: [proplists:property()]
      }).
  
      
  