primitive abstraction
primitives