Contracts for non-Void-safe users (take 3)