I've been trying to force people to call this function with exactly the
arguments they want to use because leaving out an argument and getting a
default is potentially bad. It is all a bit clunky right now though.