I'll drop the `task` parameter to reduce it to 4 parameters.

The `opts` parameter is only used for tests and is optional, so it has three parameters.