add do_icon function