calls listen with opts.listen