improved icon functionality