now we want to pass different versions of this to different args, so you take those 3 permutations I
now we want to pass different versions of this to different args, so you take those 3 permutations I've shown and get 15 overloads (5 * 3 versions = 15) (minus the one void*[] that's not valid = 12 overloads)