actually listen on the port