removed the word invariant. deleted pre and post conditions, in favor of contracts.