In order to deal efficiently with difficult diagnostic problems, deep models (based on causal knowledge) have been adopted in some experimental diagnostic expert system. This paper describes a two levels architecture for a diagnostic expert system: CHECK (Combining HEuristic and Causal Knowledge). CHECK is based on the close interaction of two levels of knowledge representation, heuristic and causal respectively. In the heuristic (shallow) level knowledge is represented by means of a hybrid formalism combining at various levels frames and production rules; in the deep level knowledge is represented by means of causal networks in which (physical or physiological) states are connected via cause-effect relations. The two levels strictly cooperate in the diagnostic process, in particular the heuristic level is used to focus reasoning, generating diagnostic hypotheses to be refined, confirmed (disconfirmed) and explained by the deep level. Heuristic (surface) level knowledge is invoked first to generate diagnostic hypotheses. These hypotheses are then passed to the underlying level for a deep confirmation (so that they are used to focus reasoning in the causal network). If a hypothesis can be confirmed, a precise explanation is generated, unaccounted and/or unexpected data are taken into account and correlated hypotheses suggested. If a hypothesis is rejected, alternative hypotheses to be considered are suggested to the surface level. Deep level knowledge can be used also to provide general explanations about the causal model of the domain, independently from the data of a particular consultation. As an example for validating the architectural choices of CHECK we have implemented a version of it for diagnostic reasoning in the field of hepatology. Production rules, frames and causal networks are described by the knowledge engineer in a knowledge representation language we have designed and then coded, through the use of a preprocessing tool, in Prolog. Particular object-oriented schemes are used to design the features of the causal network.