add logging & error checks to `icon`