Understanding Contracts and Guarantees