I actually went through a couple revisions of this code, I didn't immediately see the need to get the arguments array prior to invoking, I had it inlined in the tuple initializer. Maybe just a few comments so that someone else doesn't come along thinking it could be more clear.