About our contracts and aspect discussion: I think it is useful to try to generalize @TECHREPORT{liskov-wing-bs, AUTHOR = "Barbara Liskov and Jeannette M. Wing", TITLE = "Behavioral Subtyping Using Invariants and Constraints", INSTITUTION = "CMU", YEAR = 1999, MONTH = July, NUMBER = "CMU-CS-99-156" } to aspects. The idea of an aspect is to provide a refinement to existing behavior. The earlier work of Pierre America is also relevant @INPROCEEDINGS{america:pool-I, AUTHOR = "Pierre America", TITLE = "A Parallel Object-Oriented Language with Inheritance and Subtyping", BOOKTITLE = oopsla, YEAR = "1990", ADDRESS = "Ottawa, Canada", PAGES = "161-168", EDITOR = "N. Meyrowitz", PUBLISHER = "ACM Press", NOTE = "joint conference with ECOOP" } -- Karl