rework spec generation functions