removes allocation of a new function and guard that is not needed - saves about one half microsec.
slicing only if useful - this saves about one microsecond
we know that this call teh second arg, so let's just do it