start describing primitives and their implementation