v2

@troygoode CR please.  Thanks!
I've been thinking about it and also @troyconquer said it might be a good idea.  The only thing is that other than delayFunction, everything else is required.  Listing the actual parameter may make it more clear to the user what they should use when calling this function.