Programming languages and software engineering methods are highly related in that both are images of an underlying paradigm. In this paper we investigate the role of the paradigm, the language model and the software development method and define requirements on each of the three concepts. Subsequently, we describe the {\em layered object model}, an extended object model which allows for first-class representation of relations between objects and constraints on the behaviour of an object, and discuss how it achieves {\em paradigm extensibility}, i.e. extensibility of the paradigm and the supporting language model.