abstract icons as components