icon can be DOM element and string