move icon creation to IconFactory