In order to facilitate the construction of wide area distributed systems, it is necessary that we adopt a model that simplifies application development. In this position paper we advocate an object-based approach. Our approach allows for flexibility because many of the technical details of distribution, such as communication protocols, consistency rules, etc. can be hidden behind the objects' interfaces. In addition, we allow distributed objects to offer alternative implementations for an interface. A client may choose the most suitable implementation. We discuss the use of distributed objects as the means to this end, and compare our approach to existing ones.