use primitives