improve app generation