wrap primitives