Notes on contract-oriented computing