added optional listen if no port is specified