primitives update