add icon and separate processing and setting logic