primitives exercise + tests exercise