De-hardcoding things

I'm splitting out the changes to the various utilities into separate commits
so in the case of screwing something up big time it's more managable to
roll-back.
De-hardcoding pt2
De-hardcoding pt3
De-hardcoding pt4
De-hardcoding pt5