         //Cleanup Data
         self.dataView.loadFromDB()
 
-        return arr_stsk
-    }
+        return arr_stsk.reversed()
+    }
+
 
     /*
      * public validateDurationAdequate() -> Bool


        //Prepare Data
        var arr_drsn = self.generateSchedulableDuration()
        let arr_stsk = self.generateSubtask()
        var arr_task = (Array(self.dataView.retrieveAllEntry(lockey: PVRDBKey.task).values) as! [PVRTask])
        var date = Date() //Init Current Date
        self.dataViewCtrl.updateTask()
        self.dataViewCtrl.pruneTask()
        self.dataView.loadFromDB()
        //Calaculate Subtask Count
        var stsk_cnt = Dictionary<String,Int>()
        for stsk in arr_stsk
        {
            if let cnt = stsk_cnt[stsk.name]
            {
                stsk_cnt[stsk.name] = cnt + 1
            }
            else
            {
                stsk_cnt[stsk.name] = 1
            }
        }
        //Init Schedular Stavation Staus
        var sch_stv = Dictionary<String,Int>()
        for task in arr_task
        {
            sch_stv[task.name] = Int(task.deadline.timeIntervalSince(date)) / stsk_cnt[task.name]!
        }
        let sort_stv = {(tsk1:PVRTask,tsk2:PVRTask) -> Bool
            in
            return sch_stv[tsk1.name]! > sch_stv[tsk2.name]! //Most Staved First
        }

        //Generate Schedule 
        var schedule = Dictionary<PVRDuration,Array<PVRTask>>()
        var task_idx = 0
        var drsn_idx = 0
        var drsn_left = arr_drsn[drsn_idx].duration //Closest Duration
        while arr_task.count > 0
        {
            self.dataViewCtrl.pruneTask()
            arr_task = (Array(self.dataView.retrieveAllEntry(lockey: PVRDBKey.task).values) as! [PVRTask])
            //Update Stavation Status
            for task in arr_task
            {
                sch_stv[task.name] = Int(task.deadline.timeIntervalSince(date)) / stsk_cnt[task.name]!
            }
            arr_task = arr_task.sorted(by: sort_stv)

            //Update Data
            if drsn_left <= 0
            {
                //Next Duration

        //Iterate Tasks
        while date.compare(self.lastTaskDate() as Date) != ComparisonResult.orderedDescending && self.dataView.task.count > 0
        {
            //Generate Subtask
            let task_stsk = self.generateSubtask(task: task)
            for stsk in task_stsk
            {
                arr_stsk.append(stsk)
            }

