diff --git a/build.sbt b/build.sbt
index b3f27a5de0b77db1dcbefe6c7288bf2f0b656ca8..8c27747bcbf2c29c1726efb44c2628502e36f00b 100644
--- a/build.sbt
+++ b/build.sbt
@@ -13,8 +13,8 @@ updateOptions := updateOptions.value.withLatestSnapshots(false)
 
 libraryDependencies ++= Seq(
 //  "org.scala-js" %%% "scalajs-dom" % "1.1.0",
-  "com.github.wbillingsley.veautiful" %%% "veautiful" % "master-SNAPSHOT",
-  "com.github.wbillingsley.veautiful" %%% "doctacular" % "master-SNAPSHOT",
+  "com.github.wbillingsley.veautiful" %%% "veautiful" % "v0.3-SNAPSHOT",
+  "com.github.wbillingsley.veautiful" %%% "doctacular" % "v0.3-SNAPSHOT",
 )
 
 
diff --git a/courses.js b/courses.js
index 52b135f5431e7f8edbe150799739cb3a0eb3faa0..85b00b995585f342d24c49cd6ccc13fd444c1463 100644
--- a/courses.js
+++ b/courses.js
@@ -73,6 +73,99 @@ addCourses([
       }
     },
 
+    {
+      code: "BCOMP single major sd (ACS diagram)",
+      name: "Bachelor of Computer Science",
+      structure: [
+        {
+          name: "Core",
+          units: [
+            "AMTH140", "MTHS120", or("MTHS130", "STAT100"),
+            "COSC110",
+            or("COSC101", "COSC102"), "COSC120",
+            "COSC210", "COSC220", "COSC230", "COSC240",
+            "COSC310", "COSC320"
+          ]
+        },
+
+        {
+          name: "Major",
+          units: [
+            choose(5, "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed", "Prescribed")
+          ]
+        },
+
+        {
+          name: "Listed & Elective",
+          units: [ 
+            choose(5, 
+              "Listed", "Listed", "Listed", "Listed", "Listed",
+            ),
+            choose(2, 
+              "Elective", "Elective"
+            )
+          ]
+        }
+      ],
+      plans: {
+        "Full-time, T1 start": [
+          { name: "Y1 Trimester 1", units: [ or("COSC101", "Elective"), "COSC110", "MTHS120", "Elective", ] },
+          { name: "Y1 Trimester 2", units: [ or("COSC102", "Elective"), "AMTH140", "COSC120", or("STAT100", "MTHS130"),   ] },
+          { name: "Y2 Trimester 1", units: [ "COSC210", "COSC230", "Listed", "Listed" ] },
+          { name: "Y2 Trimester 2", units: [ "COSC240", "COSC220", "Prescribed", "Listed" ] },
+          { name: "Y3 Trimester 1", units: [ "COSC310", "Prescribed 300-level", "Prescribed 300-level", "Listed" ] },
+          { name: "Y3 Trimester 2", units: [ "COSC320", "Prescribed 300-level", "Prescribed 300-level", "Listed", ] },
+        ]
+      }
+    },
+
+
+    {
+      code: "BCOMP single major (ACS diagram)",
+      name: "Bachelor of Computer Science",
+      structure: [
+        {
+          name: "Core",
+          units: [
+            "AMTH140", "MTHS120", or("MTHS130", "STAT100"),
+            "COSC110",
+            or("COSC101", "COSC102"), "COSC120",
+            "COSC210", "COSC220", "COSC230", "COSC240",
+            "COSC310", "COSC320"
+          ]
+        },
+
+        {
+          name: "Major",
+          units: [
+            choose(5, "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed 300-level", "Prescribed", "Prescribed")
+          ]
+        },
+
+        {
+          name: "Listed & Elective",
+          units: [ 
+            choose(5, 
+              "Listed", "Listed", "Listed", "Listed", "Listed 300-level COSC",
+            ),
+            choose(2, 
+              "Elective", "Elective"
+            )
+          ]
+        }
+      ],
+      plans: {
+        "Full-time, T1 start": [
+          { name: "Y1 Trimester 1", units: [ or("COSC101", "Elective"), "COSC110", "MTHS120", "Elective", ] },
+          { name: "Y1 Trimester 2", units: [ or("COSC102", "Elective"), "AMTH140", "COSC120", or("STAT100", "MTHS130"),   ] },
+          { name: "Y2 Trimester 1", units: [ "COSC210", "COSC230", "Listed", "Listed" ] },
+          { name: "Y2 Trimester 2", units: [ "COSC240", "COSC220", "Prescribed", "Listed" ] },
+          { name: "Y3 Trimester 1", units: [ "COSC310", "Prescribed 300-level", "Prescribed", "Listed" ] },
+          { name: "Y3 Trimester 2", units: [ "COSC320", "Prescribed 300-level", "Prescribed 300-level", "Listed 300-level COSC", ] },
+        ]
+      }
+    },
+
     {
       code: "BCOMP(DS)",
       name: "Bachelor of Computer Science (Data Science)",
@@ -288,6 +381,84 @@ addCourses([
       }
     },
 
+    {
+      code: "MDSC",
+      name: "Master of Data Science",
+      structure: [
+        {
+          name: "Core",
+          units: [
+            "COSC110", "COSC210", "COSC510", "COSC550", "COSC572", "COSC580", "MTHS120", "SCI410", 
+            "STAT100", or("STAT210", "STAT410"), "STAT430"
+          ]
+        },
+        {
+          name: "Research and Capstone",
+          units: [
+            "COSC591", "SCI501"
+          ]
+        },
+        {
+          name: "Listed units",
+          units: [
+            choose(3, "Listed 500-level", "Listed 500-level", "Listed")
+          ]
+        }
+      ],
+      plans: {
+        "Full-time, T1 start": [
+          { name: "Y1 Trimester 1", units: [ "SCI410", "COSC110", "COSC210", "COSC510",  ] },
+          { name: "Y1 Trimester 2", units: [ "MTHS120", "COSC572", "STAT100", "Listed" ] },
+          { name: "Y2 Trimester 1", units: [ or("STAT210", "STAT410"), "STAT430", "Listed 500-level", "Listed 500-level" ] },
+          { name: "Y2 Trimester 2", units: ["COSC591", "SCI501", "COSC580", "COSC550",   ] },
+        ]
+      }
+    },
+
+
+    {
+      code: "MIT acs",
+      name: "Master of Information Technology",
+      structure: [
+        {
+          name: "Core",
+          units: [
+            "COSC101", "COSC110", "COSC120", "COSC210", "COSC220", "COSC260", "COSC510", "COSC560", "COSC570"
+          ]
+        },
+        {
+          name: "Research and Capstone",
+          units: [
+            "COSC594", "COSC595"
+          ]
+        },
+        {
+          name: "Listed group 1",
+          units: [
+            choose(3, "COSC530", "COSC540", "COSC550", "COSC572")
+          ]
+        },
+        {
+          name: "Listed group 2",
+          units: [
+            choose(2,
+              "AMTH250", "COSC240", "COSC250", "SCI410", 
+              "COSC530", "COSC540", "COSC550", "COSC572", "Listed elective", "Listed elective"
+            )
+          ]
+        }
+      ],
+      plans: {
+        "Full-time, T1 start": [
+          { name: "Y1 Trimester 1", units: [ "COSC101", "COSC110", "COSC120", "COSC210" ] },
+          { name: "Y1 Trimester 2", units: [ "COSC220", "COSC260", "Listed Group 1", "Listed Group 2" ] },
+          { name: "Y2 Trimester 1", units: [ "COSC510", "Listed Group 1", "COSC570",    "COSC594",] },
+          { name: "Y2 Trimester 2", units: [  "COSC560",  "Listed Group 2", "Listed Group 1", "COSC595",] },
+        ]
+      }
+    },
+
+
 
 ])
 
diff --git a/units.js b/units.js
index 9e3e146ee2f63fe43a21c098b5b8142fd33946a5..1e605e927e89acd2afa3162de5c5c284a3b42d5f 100644
--- a/units.js
+++ b/units.js
@@ -457,7 +457,7 @@ addUnits([
     {
       code: "COSC510",
       name: "Software Project Management",
-      prereq: [ coreq("COSC110", "COSC120" ) ],
+      prereq: [ "COSC110", "COSC210" ],
       cbok: [ ethics(2), expectations(2), teamwork(2), communication(3), systems(2), governance(3), projectManagement(3), humanFactors(2) ],
       swebok: [ swebok.Requirements, swebok.Maintenance, swebok.EngManagement, swebok.Process, swebok.Quality, swebok.ProfPractice, swebok.Economics ],
       sfia: [],
@@ -738,5 +738,127 @@ addUnits([
       other: [idverify.Project, idverify.TurnItIn]
     },
 
+    {
+      code: "Elective",
+      name: "Non-ICT Elective",
+      prereq: [],
+      cbok: [],
+      swebok: [],
+      sfia: [],
+      dsbok: [],
+      tags: [],
+      other: []
+    },
+
+    {
+      code: "Listed Group 1",
+      name: "ICT Elective",
+      prereq: [],
+      cbok: [],
+      swebok: [],
+      sfia: [],
+      dsbok: [],
+      tags: [],
+      other: []
+    },
+
+    {
+      code: "Listed Group 2",
+      name: "Non-ICT Elective",
+      prereq: [],
+      cbok: [],
+      swebok: [],
+      sfia: [],
+      dsbok: [],
+      tags: [],
+      other: []
+    },
+
+    {
+      code: "Listed",
+      name: "Non-ICT Elective",
+      prereq: [],
+      cbok: [],
+      swebok: [],
+      sfia: [],
+      dsbok: [],
+      tags: [],
+      other: []
+    },
+
+    {
+      code: "Listed 300-level COSC",
+      name: "Advanced ICT Elective",
+      prereq: [],
+      cbok: [],
+      swebok: [],
+      sfia: [],
+      dsbok: [],
+      tags: ["Advanced"],
+      other: []
+    },
+
+    {
+      code: "Listed 500-level",
+      name: "ICT/Non-ICT Elective",
+      prereq: [],
+      cbok: [],
+      swebok: [],
+      sfia: [],
+      dsbok: [],
+      tags: [],
+      other: []
+    },
+
+    {
+      code: "Prescribed 300-level",
+      name: "Advanced ICT Elective",
+      prereq: [],
+      cbok: [],
+      swebok: [],
+      sfia: [],
+      dsbok: [],
+      tags: ["Advanced"],
+      other: []
+    },
+
+    {
+      code: "Prescribed 500-level",
+      name: "Advanced ICT Elective",
+      prereq: [],
+      cbok: [],
+      swebok: [],
+      sfia: [],
+      dsbok: [],
+      tags: ["Advanced"],
+      other: []
+    },
+
+    {
+      code: "Prescribed",
+      name: "ICT Elective",
+      prereq: [],
+      cbok: [],
+      swebok: [],
+      sfia: [],
+      dsbok: [],
+      tags: [],
+      other: []
+    },
+
+    {
+      code: "Listed",
+      name: "Non-ICT Elective",
+      prereq: [],
+      cbok: [],
+      swebok: [],
+      sfia: [],
+      dsbok: [],
+      tags: [],
+      other: []
+    }
+
+
+
 
 ])
\ No newline at end of file