Update to be able to override `update` and still call `super`. Unfortunately there is no real method for doing protected methods in objective-c, so I made a semi-private interface. While it really doesn't do anything here to keep `update` protected, it would if this was ever broken up into multiple files.