newAppInstance currently only stores the implementation address when installing non-default apps. Since the app instances always point to their implementation contracts, I'm wondering why the kernel doesn't just store the proxy address and then users can get the implementation address from the proxy.