One of the principles of writing scripts (or any code) is the KISS principle – Keep It Simple Scripter.
That principle is being abused al lot in event 3
I am seeing numerous entries that define an advanced function as the solution and then inside the PROCESS block define one or more functions. You PROCESS block is executed once for EVERY object on your pipeline. For 1 object might not matter but for 100s of objects it will adversely affect performance.
The solutions are such that they sensibly fit in a single solution. If you must define additional functions make the solution a module so you only load them once.