Iconic programming systems provide end-users effective application environments. However, most of them don't support constructing environment themselves. This paper discusses design principles and implementational issues of an object-oriented iconic system with emphasis on maintainability and extensibility. The system is defined by a set of icons, that users can easily extend. Each icon consists of resources, which are objects of smaller granularity such as string, bitmap, and so on. Based on this framework, we have been developing an interactive environment for construction of application iconic systems.