add icon and placeholder support