updated app generation