The signature of the function changes because someone previously passing in `slice_order` (not as a keyword arg) in fact is passing the tr.   Maybe these should all become keyword-only arguments for safety - meaning an error of they try to pass the slice_order in by position, breaking backward compatibility and warning them of the problem?  I mean with:

    def __init__(self, images,  **kwargs):

and getting the args out with:

    tr = kwargs.pop('tr', 1.0)

etc.  What do you think?