This is starting to look pretty crazy. Maybe we should think about moving toward taking a hash of options here, instead of lots of nil required options. Will take some care to do that without breaking backwards compatibility, but may be worth it in the long run. What do you think?