added support for custom and validating icon