First part:  application shell