make ListenIP optional