   @doc """
   Starts an event manager process without links (outside of a supervision tree).
 
-  See `spawn_link/1` for more information.
+  See `start_link/1` for more information.
   """
   @spec start(options) :: on_start
   def start(options \\ []) when is_list(options) do


    It must return:

        {:ok, state}
        {:ok, state, :hibernate}
        {:error, reason}

  * `handle_event(msg, state)` - invoked whenever an event is sent via
    `notify/2` or `sync_notify/2`.

    It must return:

        {:ok, new_state}
        {:ok, new_state, :hibernate}
        {:swap_handler, args1, new_state, handler2, args2}
        :remove_handler

  * `handle_call(msg, state)` - invoked when a `call/3` is done to a specific handler.

    It must return:

        {:ok, reply, new_state}
        {:ok, reply, new_state, :hibernate}
        {:swap_handler, reply, args1, new_state, handler2, args2}
        {:remove_handler, reply}

  * `handle_info(msg, state)` - invoked to handle all other messages which
     are received by the process. Must return the same values as `handle_event/2`;

     It must return:

        {:noreply, state}
        {:noreply, state, timeout}
        {:stop, reason, state}

  * `terminate(reason, state)` - called when the event handler is removed or the
    event manager is terminating. It can return any term.

  * `code_change(old_vsn, state, extra)` - called when the application
    code is being upgraded live (hot code swap).

    It must return:

        {:ok, new_state}

  ## Name registering

  A GenEvent is bound to the same name registering rules as a `GenServer`.
  Read more about it in the `GenServer` docs.

  ## Streaming

  `GenEvent`'s can be streamed from and streamed with the help of `stream/2`.
  Here are some examples:

      stream = GenEvent.stream(pid)


  ## Learn more

  If you wish to find out more about gen events, Elixir getting started
  guides provide a tutorial-like introduction. The documentation and links
  in Erlang can also provide extra insight.

