XML node removal method with 5 arguments I read somewhere that you should try to have as few method arguments as possible to make code easier to read, understand and use. I agree with this to a point but I'm not sure how I can make the following method easier. I think all 5 of the arguments are required. 

Should I leave it as is? I think, if I was to add some comments, I may remember what this does if I come back to it later but there's a chance I won't know exactly what each argument is for.

public static void RemoveXMLNode(string pathToDocument, string descendant, string element, string elementValue,string newDocumentPath)
{
    var xDoc = XDocument.Load(pathToDocument);
    xDoc.Descendants(descendant)
    .Where(n =&gt; (string)n.Element(element) == elementValue)
    .Remove();
    xDoc.Save(newDocumentPath);
}
The method has definitely too many arguments and the reason for that is because it does too much. When you look at its name you could think it removes a XML node but under the cover it does three things:


it loads a document
it then does its job of removing a node
it then saves the document under new name


If you properly separated these three concerns your APIs would have much simpler signatures.