swap primitives for composite