Not saying this is necessarily bad, but what's the  motivation for grouping the params like this? Is it to make the impl easier? (i.e. why not `S().urls(…).timeout(…)`?)