anchor.diff:  init([Topology, Addr, TopologyOptions, Wopts]) ->
     process_flag(trap_exit, true),
     {Host, Port} = parse_seed(Addr),
  -  PoolSize = proplists:get_value(maxPoolSize, TopologyOptions, 10),
  -  ConnectTimeoutMS = proplists:get_value(connectTimeoutMS, TopologyOptions, 20000),
  -  SocketTimeoutMS = proplists:get_value(socketTimeoutMS, TopologyOptions, 100),
  -  ReplicaSet = proplists:get_value(rs, TopologyOptions, undefined),
  +  PoolSize = mc_utils:get_value(pool_size, TopologyOptions, 10),
  +  Overflow = mc_utils:get_value(max_overflow, TopologyOptions, 10),
  +  ConnectTimeoutMS = mc_utils:get_value(connectTimeoutMS, TopologyOptions, 20000),
  +  SocketTimeoutMS = mc_utils:get_value(socketTimeoutMS, TopologyOptions, 100),
  +  ReplicaSet = mc_utils:get_value(rs, TopologyOptions, undefined),
     MRef = erlang:monitor(process, Topology),
     gen_server:cast(self(), init_monitor),
     {ok, #state{
  
positive.code:     host = Host,
      port = Port,
      rs = ReplicaSet,
      max_pool = PoolSize,
      connect_to = ConnectTimeoutMS,
      socket_to = SocketTimeoutMS,
      topology_opts = TopologyOptions,
  
negative.code:   rs = undefined,
    type = undefined,
    me,
    size :: integer(),
    max_overflow :: integer(),
    connect_to,
    socket_to,
    topology,
  