Improved AppShell::perform()

Implement #62