`init` is not required except for the first time `show` is called so isn't it better to test in `show` and not have another function call in the stack?