I was trying to avoid that at first, but now I see it makes perfect sense. If you're going to have to pass the datatype anyway, why not just call the correct method?  I will fix it, and add `char` too.