FIRST QUESTIONABLE DESIGN DECISION: To support the undo manager and pasteboard, the document class also declares a separate array that gets bound to the array controller's content array by setting that in the controller's bindings pane in IB. I have read the documentation to indicate that this array should change in lock step with insert: and remove: messages to the array contrroller.