public NatsEmbeddedServer(Properties popts) {
		conns = new ConcurrentHashMap<String, ClientConnection>();

		if (!popts.containsKey("port")) { popts.put("port", Integer.toString(DEFAULT_PORT)); }
		if (!popts.containsKey("auth")) { popts.put("auth", new Boolean(DEFAULT_AUTH)); }
		if (!popts.containsKey("ssl")) { popts.put("ssl", new Boolean(DEFAULT_SSL)); }
		if (!popts.containsKey("max_payload")) { popts.put("max_payload", new Integer(DEFAULT_MAX_PAYLOAD)); }

		if (System.getenv("NATS_PORT") != null) { popts.put("port", Integer.parseInt(System.getenv("NATS_PORT"))); }
		if (System.getenv("NATS_AUTH") != null) { popts.put("auth", Boolean.parseBoolean(System.getenv("NATS_AUTH"))); }
		if (System.getenv("NATS_SSL") != null) { popts.put("ssl", Boolean.parseBoolean(System.getenv("NATS_SSL"))); }
		if (System.getenv("NATS_MAX_PAYLOAD") != null) { popts.put("max_payload", Integer.parseInt(System.getenv("NATS_MAX_PAYLOAD"))); }
		
		opts = popts;
		clientCounter = 0;

		this.start();
		monitor = NatsMonitor.getInstance();
		monitor.start();
	}