anchor.diff:      printfn "1 -> Get all events"
       printfn "2 -> Execute an event"
       printfn "3 -> Change BaseURL"
  -    printfn "4 -> View tasks/status"
  -    printfn "5 -> Exit program"
  +    printfn "4 -> Change Role"
  +    printfn "5 -> View tasks/status"
  +    printfn "6 -> Exit program"
       printf "-> "
       match(Console.ReadLine()) with
       | "1" -> //Get all events
  
positive.code:                     printfn "action completed"
                      mainLoop baseUrl events
      | "3" -> Some(true) //Change BaseURL
      | "4" -> //View Status
               printfn "Task:"
               mainLoop baseUrl (getStatusAndRemovefaulty events baseUrl)
      | "5" -> None //Exit program
      | _   -> None
      
  //Prompts the user to enter the BaseURL
  let SelectBaseUrl n = 
      printfn "Please provide BaseURL and press enter:"
      Console.ReadLine()
  
  //Provides the loop that allows the mainLoop to exit and rerequest the BaseURL.
  let rec OuterLoop m = 
      let baseUrl = SelectBaseUrl 0
      let m = mainLoop baseUrl []
      if (m.IsSome) then
          OuterLoop m
  
  //Entry point
  [<EntryPoint>]
  
negative.code:             | _ -> []
      writeOutEventStatus (List.sortBy (fun k -> let (eventName, executed,included,pended) = k
                                                 not pended) (getValidEvents events)) baseUrl
  //Prompts the user to enter the BaseURL
  let rec selectRole n = 
      printfn "Whats your role?"
      printfn "Actions:"
      printfn "1 -> Teacher"
      printfn "2 -> Student"
      printf "-> "
      ignore <| match(Console.ReadLine()) with
                | "1" -> role = "Teacher"
                | "2" -> role = "Student"
                | _ ->   printfn "Role doesn't exist!"
                         selectRole n
      true
  
  //Mainloop, covers event selection and exchanging information with the events.    
  let rec mainLoop baseUrl (events : eventStatus list) =
  