anchor.diff:  
   -record(state, {
   	listener,
  -	acceptor
  +	acceptors,
  +	poolsize = 5
   }).
  +
  +%% =====
  +%% Types
  +%% =====
  +
  +-type(port_opt() :: {port, pos_integer()}).
  +-type(certfile_opt() :: {certfile, string()}).
  +-type(keyfile_opt() :: {keyfile, string()}).
  +-type(poolsize_opt() :: {poolsize, pos_integer()}).
  +-type(start_opt() :: port_opt() | certfile_opt() | keyfile_opt() |
  +		poolsize_opt()).
  +-type(start_opts() :: [start_opt()]).
   
   %% =====
   %% API
   %% =====
  +
  +%% @doc Starts an unlinked ssl listener with default options.
  +-spec(start/0 :: () -> {'ok', pid()}).
   start() -> start([]).
   
  +%% @doc Starts an unlinked ssl listener with the given options.
  +-spec(start/1 :: (Args :: start_opts()) -> {'ok', pid()}).
   start(Args) -> gen_server:start(?MODULE, Args, []).
   
  +%% @doc Starts an ssl listener with default options.
  +-spec(start_link/0 :: () -> {'ok', pid()}).
   start_link() -> start_link([]).
   
  +%% @doc Starts an ssl listener with the given options.
  +-spec(start_link/1 :: (Args :: start_opts()) -> {'ok', pid()}).
   start_link(Args) -> gen_server:start_link(?MODULE, Args, []).
   
   %% =====
  
positive.code: init(Args) ->
  	process_flag(trap_exit, true),
  	Port = proplists:get_value(port, Args, 6006),
  	SimpleOpts = [list, {packet, line}, {reuseaddr, true},
  		{keepalive, true}, {backlog, 30}, {active, false}],
  	case ssl:listen(Port, SimpleOpts) of
  		{ok, Listen_socket} ->
  			%%Create first accepting process
  			Acceptor = spawn_link(?MODULE, spawn_acceptor, [Listen_socket]),
  			?info("Started on port ~p", [Port]),
  			{ok, #state{listener = Listen_socket, acceptor = Acceptor}};
  		{error, Reason} ->
  			?warning("Could not start ssl:  ~p", [Reason]),
  			{stop, Reason}
  
negative.code: %% Internal 
  %% =====
  
  spawn_acceptors(ListSock, Size) ->
  	spawn_acceptors(ListSock, Size, []).
  
  spawn_acceptors(_ListSock, Size, Acc) when Size =:= length(Acc) ->
  	Acc;
  spawn_acceptors(ListSock, Size, Acc) ->
  	Pid = spawn_link(?MODULE, spawn_acceptor, [ListSock]),
  	spawn_acceptors(ListSock, Size, [Pid | Acc]).
  
  spawn_acceptor(Socket) ->
  	case ssl:transport_accept(Socket) of
  		{ok, NewSocket} ->
  			case ssl:ssl_accept(NewSocket, 3000) of
  				ok ->
  					{ok, Pid} = pre_client_manager:start_client(NewSocket),
  					ssl:controlling_process(NewSocket, Pid),
  					exit(normal);
  				{error, Reason} ->
  					?notice("Ssl connect did not cmplete:  ~p", [Reason]),
  					exit(Reason)
  			end;
  		{error, Reason} ->
  			?notice("ssl transport accept errored:  ~p", [Reason]),
  			exit(Reason)
  	end.
  