Add profiling to app, refactor app launcher.