added ignoreprimitive parameter