this is where we need a different call for each primitive type to avoid autoboxing.