cleanup
add labels, auto-height calculation, and name/shade defaults
simplify
add icon support