The "fakeargs" parameter is exactly a hard-coded hack.
In case you don't know what "hard-coded" means, adding a separate if-block for each possible value of face= (instead of just passing along all given parameters) is the hard-coded hack and defies the principle of code-reuse.
That's easily fixed of course.
Apparently not, since you couldn't do it.