consider argument name may colide with prototype function