     }
 
     /*
-     * public func genrateAllSubtask() -> [PVRTask]
+     * public func generateAllSubtask() -> [String:[PVRTask]]
      * - Generate subtasks from all tasks
      * [Return]
-     * Array<PVRTask> - Array of subtasks
-    */
-    public func genrateAllSubtask() -> [PVRTask]
+     * Dictionary<String,Array<PVRTask>> - Dictionary with key as task name and value as subtasks generated from task specfied by name
+    */
+    public func generateAllSubtask() -> [String:[PVRTask]]
     {
         //Prepare Data
         self.dataCtrl.updateTask()

        var arr_drsn = Array<PVRDuration>()

        //Extract Duration from Void Duration
        while date.compare(self.lastTaskDate() as Date) == ComparisonResult.orderedAscending && self.dataView.voidDuration.count <= 0
        {
            //date < last task date
            //Duration from date to voidd.begin

        self.dataView.loadFromDB()
        var date = Date()
        var task = self.dataViewCtrl.sortedTask(sattr: PVRTaskSort.deadline)[0] //Closest Deadline
        var sch_stsk = Dictionary<String,Array<PVRTask>>()

        //Iterate Tasks
        while date.compare(self.lastTaskDate() as Date) != ComparisonResult.orderedDescending && self.dataView.task.count > 0
