Guess this is undoable?

The main part of the script can be reused (with a few changes)...it is the SOFTWARELIST part I am not sure how to optimize for this...