fetch() now takes a request object