basic primitives and list operations