anchor.diff:      ?INFO("~p listening on port ~p~n", [?MODULE, Port]),
       cowboy:start_http(?MODULE, Listeners, [{port, Port}], [{env, []}]).
   
  +start_cowboy_with_tls(Port, Listeners, TLSOpts) ->
  +    TLSCert = proplists:get_value(certfile, TLSOpts, undefined),
  +    TLSKey = proplists:get_value(keyfile, TLSOpts, undefined),
  +    TLSKeyPass = proplists:get_value(password, TLSOpts, undefined),
  +    ?INFO("~p listening on port ~p with TLS enabled~n\tcert: ~s~n\tkey: ~s)",
  +          [?MODULE, Port, TLSCert, TLSKey]),
  +    TransportOpts = [{port, Port}, {certfile, TLSCert}, {keyfile, TLSKey},
  +                     {password, TLSKeyPass}],
  +    cowboy:start_https(?MODULE, Listeners, TransportOpts, [{env, []}]).
  +
   update_cowboy(Routes) ->
       RouteList = lists:flatten(maps:fold(
           fun(_, Route, Acc) ->
  
positive.code: handle_call(Request, _From, State) ->
      {stop, {notimplemented, Request}, State}.
  
  handle_cast(start, State = #{port := Port, listeners := Listeners}) ->
      {ok, Pid} = start_cowboy(Port, Listeners),
      {noreply, State#{pid => Pid}};
  handle_cast(Msg, State) ->
      {stop, {notimplemented, Msg}, State}.
  
negative.code: init(_Args) ->
      Port = application:get_env(erl_cowboy, port, 80),
      Listeners = application:get_env(erl_cowboy, listeners, 100),
      TLSEnabled = application:get_env(erl_cowboy, tls_enabled, false),
      TLSOpts = application:get_env(erl_cowboy, tls_opts, undefined),
      gen_server:cast(?MODULE, start),
      {ok, #{port => Port, listeners => Listeners,
             routes => #{},
             tls_enabled => TLSEnabled,
             tls_opts => TLSOpts}}.
  
  handle_call({routing, Key, NewRoute}, _From, State = #{routes := Routes}) ->
      NewRoutes = maps:put(Key, NewRoute, Routes),
  