Describir: Engineering distributed objects