rename set_icon to update
small refactor
protect against multiple shutdown / start calls
add TODOs