use IconSpecs and constants rather than string literals to build the icons.
added some CR's for readability
sort array on rank
the dreaded mouseover