custom primitives mapping