minor cleanup and separate individual primitives (refs #48)