Use FunAppDelegate + ViewController + State and get free view preservation/restoration and a simpler view lifecycle
Clearer calling point for interfaceDidLoad
Fix infinite loops