updated with checks for repeated procedure names