diff --git a/allocate.c b/allocate.c
index 275a8429a9cc9335c9056943b2b915c832ef49d9..290c4e6f9468862c81fc6137c436c349f01a5520 100644
--- a/allocate.c
+++ b/allocate.c
@@ -20,7 +20,7 @@ typedef struct {
     int timeRemaining;
     int subProcsRunning;
     int justStarted;
-    int deltaTime;
+    int startTime;
 } process;
 
 typedef struct {
@@ -111,11 +111,7 @@ int main(int argc, char *argv[]) {
 
         //while (fgets(line, sizeof line, f) != NULL) {
         while (newProcess = getNextProcessB(f, arrivalLounge, readAhead)) {
-
-            //printf("process id:%s  process arrival time: %d\n", newProcess->processID, newProcess->timeArrived);
-
             deltaTime = newProcess->timeArrived - currentTime;
-
             //update currentTime
             currentTime += deltaTime;
 
@@ -167,9 +163,6 @@ int main(int argc, char *argv[]) {
                 }
                 numProcessesLeft += 1;
                 llist_push(paralellizedProcesses, newProcess);
-            } else {
-                printf("Error in test file ");
-                exit(1);
             }
             //  Log started processes.
             for (int j = 0; j < numCPU; j++) {
@@ -177,9 +170,9 @@ int main(int argc, char *argv[]) {
                 //next process in queue started
                 if (headProcess != NULL && headProcess->justStarted) {
                     // printf("current time: %d\n", currentTime);
+                    printf("%d,RUNNING,pid=%s,remaining_time=%d,cpu=%d - AAAA line 181\n",
+                           headProcess->startTime, headProcess->processID, headProcess->timeRemaining, j);
                     headProcess->justStarted = 0;
-                    printf("%d,RUNNING,pid=%s,remaining_time=%d,cpu=%d - AAAA line 184\n",
-                          currentTime + headProcess->deltaTime, headProcess->processID, headProcess->timeRemaining, j);
                 }
             }
 
@@ -223,13 +216,13 @@ int main(int argc, char *argv[]) {
             //next process in queue started
             if (headProcess != NULL && headProcess->justStarted) {
                 // printf("current time: %d\n", currentTime);
-                headProcess->justStarted = 0;
                 printf("%d,RUNNING,pid=%s,remaining_time=%d,cpu=%d\n",
-                       currentTime, headProcess->processID, headProcess->timeRemaining, j);
+                       headProcess->startTime, headProcess->processID, headProcess->timeRemaining, j);
+                headProcess->justStarted = 0;
             }
         }
 
-//        currentTime += deltaTime;
+//        currentTime += startTime;
     }
 //    printf("Completed Queue:");
 //    llist_print(completedProcesses, (void (*)(void *)) &printQEntry);
@@ -293,9 +286,10 @@ void initializeProcess(char data[], process *newProcess) {
     if (token != NULL) {
         newProcess->parallelisable = token[0];
     }
-    newProcess->deltaTime =0;
+    newProcess->startTime = 0;
     newProcess->timeCompleted = -1;
     newProcess->timeRemaining = newProcess->executionTime;
+    newProcess->justStarted = 0;
 }
 
 process *headData(llist *q) {
@@ -333,12 +327,11 @@ void advanceProcessQueue(llist *processQueue, int currentTime, int deltaTime, ll
     while (headProcess != NULL && deltaTime != 0) {
         if (deltaTime >= headProcess->timeRemaining) {  //  Process has finished
             deltaTime -= headProcess->timeRemaining;
-            headProcess->timeCompleted = currentTime - deltaTime; //+ headProcess->timeRemaining;
-//            int t = headProcess->timeRemaining;
+            headProcess->timeCompleted = currentTime - deltaTime;
             headProcess->timeRemaining = 0;
             if (headProcess->parallelisable == 'p') {
                 //printf("process had finished, and was a paralized subprocess\n");
-                parentPid[0] = strtok(headProcess->processID, ".");//todo to get rid of warning strncopy
+                parentPid[0] = strtok(headProcess->processID, ".");
                 paralizedProcess = parallelParent(paralellProcesses, parentPid);
                 paralizedProcess->subProcsRunning -= 1;
                 if (paralizedProcess->subProcsRunning == 0) {
@@ -346,10 +339,10 @@ void advanceProcessQueue(llist *processQueue, int currentTime, int deltaTime, ll
                     // parallelized process has completed.
                     *numProcessesLeft -= 1;
                     *numProcessComplete += 1;
-                    paralizedProcess->timeCompleted = currentTime - deltaTime;//todo error on calculation here
+                    paralizedProcess->timeCompleted = currentTime - deltaTime;
                     paralizedProcess->timeRemaining = 0;
                     headProcess->timeRemaining = 0;
-                    //printf("process had finished: Current time: %d, deltaTime: %d\n", currentTime, deltaTime);
+                    //printf("process had finished: Current time: %d, startTime: %d\n", currentTime, startTime);
                     printf("%d,FINISHED,pid=%s,proc_remaining=%d\n",
                            paralizedProcess->timeCompleted, paralizedProcess->processID, *numProcessesLeft);
                     //  Could accumulate statistics here instead of keeping list of completed processes
@@ -359,7 +352,7 @@ void advanceProcessQueue(llist *processQueue, int currentTime, int deltaTime, ll
                 headProcess = headData(processQueue);
                 if (headProcess){
                     headProcess->justStarted = -1;
-                    headProcess->deltaTime = deltaTime;
+                    headProcess->startTime = currentTime - deltaTime;
                 }
 
             } else { // finishedprocess is not parallelisable
@@ -373,13 +366,12 @@ void advanceProcessQueue(llist *processQueue, int currentTime, int deltaTime, ll
                 headProcess = headData(processQueue);
                 if (headProcess){
                     headProcess->justStarted = -1;
-                    headProcess->deltaTime = deltaTime;
+                    headProcess->startTime = currentTime - deltaTime;
                 }
             }
 
         } else { // head process not finished
             headProcess->timeRemaining -= deltaTime;
-            headProcess->deltaTime = deltaTime;
             deltaTime = 0;
             // llist_print( processQueue, (void (*)(void *)) &printQEntry );
         }
@@ -420,8 +412,11 @@ void addProcessToQueue(llist *processQueue, process *newProcess, int currentTime
     process *headProcess;
     llist_add_inorder(newProcess, processQueue, (int (*)(void *, void *)) &leastTimeRemaining);
     headProcess = headData(processQueue);
-    if (strncmp(headProcess->processID, newProcess->processID, sizeof (newProcess->processID)))
-        headProcess->justStarted=-1;
+//    llist_print(processQueue, (void (*)(void *)) &printQEntry);
+    if (strncmp(headProcess->processID, newProcess->processID, sizeof (newProcess->processID))) {
+        headProcess->justStarted = -1;
+        headProcess->startTime = currentTime;
+    }
 
 }