This was hairy and is getting hairier. Can we get a options argument instead?