finished primitives in C