implemented primitives