Objective-C Structred Programming with Invariant Requirements