After adding the last piece of code from the appendix, which asks us to create an instance of BNRTowel and to call the addObserver:forKeyPath:options:context method, the app terminates. The reason is that an instance of class BNRTowel was deallocated while key value observers were still registered with it.
How do we fix this?