Having this many optional parameter when you don't have type system guarantees generally makes for awkward programming, if a lot of them are really optional, then it's probably better passing a dictionary of parameters in, (then it's obvious which ones are set and which aren't). If this is working fine for now though, just leave it, this is just a note of what to do if this method goes wrong in the future.