An improvement to the design of intelligent knowledge based systems is discussed in the paper. This leads necessarily to a discussion of the kinds of systems that are capable of handling diverse problems arising in the real world, and solving them autonomously. A new approach is necessary for designing such systems. Human activities are analyzed and a way of representing each activity as a compound of basic intelligent functions is described. Some functions are represented as the compounds of other functions. Thus, a hierarchy of the functions is constructed to form the software architecture of an intelligent system, where the human interface appears on top of this structure. Intelligent systems need to be provided with considerable knowledge. However, it is very wasteful to let every person collect and structure large amounts of knowledge. It is desirable that there should be large knowledge bases which can supply each intelligent knowledge system as necessary. A network system consisting of many intelligent systems and one or more large commonly accessible knowledge bases is discussed.