diff --git a/resume_manager_core/fixtures/resume_manager/contact_info.json b/resume_manager_core/fixtures/resume_manager/contact_info.json
index fed66562756518267443eaeb257a4a4721bb81d9..babecc01123f0b23cb7924354744b9f0e8e5e4f8 100644
--- a/resume_manager_core/fixtures/resume_manager/contact_info.json
+++ b/resume_manager_core/fixtures/resume_manager/contact_info.json
@@ -10,5 +10,18 @@
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
+},
+{
+    "model": "resume_manager_core.contactinfo",
+    "pk": 2,
+    "fields": {
+        "resume": 2,
+        "phone_number": 9255550100,
+        "email": "email@example.com",
+        "website": "www.brandon-rodriguez.com",
+        "linkedin": "example-user",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
 }
 ]
diff --git a/resume_manager_core/fixtures/resume_manager/education_instances.json b/resume_manager_core/fixtures/resume_manager/education_instances.json
index 5c1e6261cd283f73bf10985d3b04cbe6cc5de846..c76b29a88d10efed058460351682be2c5e9ebe83 100644
--- a/resume_manager_core/fixtures/resume_manager/education_instances.json
+++ b/resume_manager_core/fixtures/resume_manager/education_instances.json
@@ -8,7 +8,7 @@
         "degree": "Introductory Basket Weaving",
         "gpa": 4.0,
         "date_start": "2015-08-26",
-        "date_end": "2027-05-14",
+        "date_end": "2017-05-14",
         "order": 3,
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -70,5 +70,50 @@
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
+},
+{
+    "model": "resume_manager_core.educationinstance",
+    "pk": 6,
+    "fields": {
+        "resume": 2,
+        "name": "Example Associate's Institution",
+        "degree": "Introductory Basket Weaving",
+        "gpa": 4.0,
+        "date_start": "2015-08-26",
+        "date_end": "2027-05-14",
+        "order": 3,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.educationinstance",
+    "pk": 7,
+    "fields": {
+        "resume": 2,
+        "name": "Example Master's Institution",
+        "degree": "Extreme Basket Weaving",
+        "gpa": 3.45,
+        "date_start": "2021-01-09",
+        "date_end": "2023-05-15",
+        "order": 1,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.educationinstance",
+    "pk": 8,
+    "fields": {
+        "resume": 2,
+        "name": "Example Bachelor's Institution",
+        "degree": "Computer Science",
+        "gpa": "2.88",
+        "date_start": "2017-08-26",
+        "date_end": "2020-12-07",
+        "order": 2,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
 }
 ]
diff --git a/resume_manager_core/fixtures/resume_manager/experience_instances.json b/resume_manager_core/fixtures/resume_manager/experience_instances.json
index 0d4f101c7a37a4c875e6999bee1a287fdb733380..40678ca59b8f12199ac024aa334570d47d4cd945 100644
--- a/resume_manager_core/fixtures/resume_manager/experience_instances.json
+++ b/resume_manager_core/fixtures/resume_manager/experience_instances.json
@@ -1,2 +1,62 @@
 [
+{
+    "model": "resume_manager_core.experienceinstance",
+    "pk": 1,
+    "fields": {
+        "resume": 2,
+        "name": "Bob's Basket Weaving Shenanigans",
+        "position": "Intern Basket Weaver",
+        "description": "Intern one one of several teams weaving vibranium interlaced bamboo baskets. Responsible for learning company workflow, and being able to keep up with employee output by first two months.",
+        "date_start": "2015-08-26",
+        "date_end": "2016-05-14",
+        "order": 4,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.experienceinstance",
+    "pk": 2,
+    "fields": {
+        "resume": 2,
+        "name": "Bob's Basket Weaving Shenanigans",
+        "position": "Sr Basket Weaver",
+        "description": "Leader of basket weaving operations. Includes overseeing supply-ordering and quality control of incoming materials, interviewing and training of all incoming new hires, as well as all functions of previous role.",
+        "date_start": "2021-01-09",
+        "date_end": "2023-05-15",
+        "order": 1,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.experienceinstance",
+    "pk": 3,
+    "fields": {
+        "resume": 2,
+        "name": "Paper & Co's Paper Bussiness",
+        "position": "Paper Shuffler",
+        "description": "Part of a team to research, test, and evaluate papers in search of ideal stacking and shuffling qualities. Tasks included shuffling papers in various environmental conditions to test quality and handling, as well as occasionally acting as the office receptionist to handle incoming day-to-day phone calls.",
+        "date_start": "2018-08-26",
+        "date_end": "2020-12-07",
+        "order": 3,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.experienceinstance",
+    "pk": 4,
+    "fields": {
+        "resume": 2,
+        "name": "Bob's Basket Weaving Shenanigans",
+        "position": "Basket Weaver Production Assistant",
+        "description": "Integral part of team producing multiple types of high-end woven baskets. Helped run day-to-day operations, and acted as a second opinion for decisions affecting future workflow.",
+        "date_start": "2016-05-14",
+        "date_end": "2021-01-08",
+        "order": 2,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+}
 ]
diff --git a/resume_manager_core/fixtures/resume_manager/reference_instances.json b/resume_manager_core/fixtures/resume_manager/reference_instances.json
new file mode 100644
index 0000000000000000000000000000000000000000..60595cc3cc9689d9ffad8aa09f71b234fa2d6f18
--- /dev/null
+++ b/resume_manager_core/fixtures/resume_manager/reference_instances.json
@@ -0,0 +1,54 @@
+[
+{
+    "model": "resume_manager_core.referenceinstance",
+    "pk": 1,
+    "fields": {
+        "resume": 2,
+        "name": "Pretend Guy",
+        "company": "1234 Pretend Products Inc, Lead Production Manager",
+        "phone_number": 9255550100,
+        "email": "email@example.com",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.referenceinstance",
+    "pk": 2,
+    "fields": {
+        "resume": 2,
+        "name": "Pretend Gal",
+        "company": "1234 Pretend Products Inc, Lead Production Manager",
+        "phone_number": 9255550100,
+        "email": "email@example.com",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.referenceinstance",
+    "pk": 3,
+    "fields": {
+        "resume": 2,
+        "name": "Made Up Person",
+        "company": "Made Up Company, Technical Assistant",
+        "phone_number": 9255550100,
+        "email": "email@example.com",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.referenceinstance",
+    "pk": 4,
+    "fields": {
+        "resume": 2,
+        "name": "Imaginary Entity",
+        "company": "Pretend Business, Owner",
+        "phone_number": 9255550100,
+        "email": "email@example.com",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+}
+]
diff --git a/resume_manager_core/fixtures/resume_manager/resume_sections.json b/resume_manager_core/fixtures/resume_manager/resume_sections.json
index 3d756d3ab139a30033a7770a4af1947d110ae6ec..d450d230225a68e53893ec4c3bfecbd2ce99b029 100644
--- a/resume_manager_core/fixtures/resume_manager/resume_sections.json
+++ b/resume_manager_core/fixtures/resume_manager/resume_sections.json
@@ -94,7 +94,7 @@
         "resume": 1,
         "parent_section": 3,
         "name": "Education",
-        "css": [3, 16],
+        "css": [3, 13, 16],
         "display_category": 4,
         "separator_before": true,
         "date_created": "2023-01-01T08:00:00.000Z",
@@ -113,5 +113,223 @@
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 10,
+    "fields": {
+        "resume": 2,
+        "parent_section": null,
+        "name": "Front Page",
+        "css": [1],
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 11,
+    "fields": {
+        "resume": 2,
+        "parent_section": null,
+        "name": "Back Page",
+        "css": [1],
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 12,
+    "fields": {
+        "resume": 2,
+        "parent_section": 10,
+        "name": "Header Section",
+        "css": [2, 18, 19, 27],
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 13,
+    "fields": {
+        "resume": 2,
+        "parent_section": 10,
+        "name": "Body Section",
+        "css": [3, 12, 19],
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 14,
+    "fields": {
+        "resume": 2,
+        "parent_section": 10,
+        "name": "Footer Section",
+        "css": [2, 18, 19, 27, 41],
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 15,
+    "fields": {
+        "resume": 2,
+        "parent_section": 12,
+        "name": "Header Left",
+        "css": [20, 29],
+        "display_category": 1,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 16,
+    "fields": {
+        "resume": 2,
+        "parent_section": 12,
+        "name": "Header Right",
+        "css": [22, 29],
+        "display_category": 2,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 17,
+    "fields": {
+        "resume": 2,
+        "parent_section": 13,
+        "name": "Contact Info",
+        "css": [3, 16],
+        "display_category": 3,
+        "separator_before": true,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 18,
+    "fields": {
+        "resume": 2,
+        "parent_section": 13,
+        "name": "Experience",
+        "css": [3, 13, 16],
+        "display_category": 5,
+        "separator_before": true,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 19,
+    "fields": {
+        "resume": 2,
+        "parent_section": 13,
+        "name": "Education",
+        "css": [3, 13, 16],
+        "display_category": 4,
+        "separator_before": true,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 20,
+    "fields": {
+        "resume": 2,
+        "parent_section": 11,
+        "name": "Header Section",
+        "css": [2, 18, 19, 27],
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 21,
+    "fields": {
+        "resume": 2,
+        "parent_section": 11,
+        "name": "Body Section",
+        "css": [3, 12, 19],
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 22,
+    "fields": {
+        "resume": 2,
+        "parent_section": 11,
+        "name": "Footer Section",
+        "css": [2, 18, 19, 27, 41],
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 23,
+    "fields": {
+        "resume": 2,
+        "parent_section": 20,
+        "name": "Header Left",
+        "css": [20, 29],
+        "display_category": 1,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 24,
+    "fields": {
+        "resume": 2,
+        "parent_section": 20,
+        "name": "Header Right",
+        "css": [22, 29],
+        "display_category": 2,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 25,
+    "fields": {
+        "resume": 2,
+        "parent_section": 21,
+        "name": "References",
+        "css": [3, 13, 16],
+        "display_category": 7,
+        "separator_before": true,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.resumesection",
+    "pk": 26,
+    "fields": {
+        "resume": 2,
+        "parent_section": 21,
+        "name": "Skills",
+        "css": [3, 13, 16],
+        "display_category": 6,
+        "separator_before": true,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
 }
 ]
diff --git a/resume_manager_core/fixtures/resume_manager/resumes.json b/resume_manager_core/fixtures/resume_manager/resumes.json
index 8e9dd2b9fa2cdf7015bea8b25d76205da2e191fc..0707fa723e3efcb1c2a8800652c461b37110ebb5 100644
--- a/resume_manager_core/fixtures/resume_manager/resumes.json
+++ b/resume_manager_core/fixtures/resume_manager/resumes.json
@@ -3,7 +3,7 @@
     "model": "resume_manager_core.resume",
     "pk": 1,
     "fields": {
-        "name": "Example Blocky-Purple Resume",
+        "name": "Example Blocky-Purple Resume - Basic",
         "user": 1,
         "theme": 1,
         "profession": "Example Profession <br> Underwater Basket Weaver",
@@ -11,5 +11,18 @@
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
+},
+{
+    "model": "resume_manager_core.resume",
+    "pk": 2,
+    "fields": {
+        "name": "Example Blocky-Purple Resume - Two Page",
+        "user": 1,
+        "theme": 1,
+        "profession": "Full Stack <br> Software Engineer",
+        "last_activity": "2023-01-01",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
 }
 ]
diff --git a/resume_manager_core/fixtures/resume_manager/skill_categories.json b/resume_manager_core/fixtures/resume_manager/skill_categories.json
new file mode 100644
index 0000000000000000000000000000000000000000..8060352fc9237d325d37a0e322072131f6120dd8
--- /dev/null
+++ b/resume_manager_core/fixtures/resume_manager/skill_categories.json
@@ -0,0 +1,87 @@
+[
+{
+    "model": "resume_manager_core.skillcategory",
+    "pk": 1,
+    "fields": {
+        "resume": 1,
+        "name": "Operating Systems",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillcategory",
+    "pk": 2,
+    "fields": {
+        "resume": 1,
+        "name": "Office Software",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillcategory",
+    "pk": 3,
+    "fields": {
+        "resume": 1,
+        "name": "Editing Software",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillcategory",
+    "pk": 4,
+    "fields": {
+        "resume": 2,
+        "name": "Programming Languages",
+        "order": 4,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillcategory",
+    "pk": 5,
+    "fields": {
+        "resume": 2,
+        "name": "Frameworks & Libraries",
+        "order": 5,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillcategory",
+    "pk": 6,
+    "fields": {
+        "resume": 2,
+        "name": "Operating Systems",
+        "order": 1,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillcategory",
+    "pk": 7,
+    "fields": {
+        "resume": 2,
+        "name": "Office Software",
+        "order": 2,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillcategory",
+    "pk": 8,
+    "fields": {
+        "resume": 2,
+        "name": "Design Software",
+        "order": 3,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+}
+]
diff --git a/resume_manager_core/fixtures/resume_manager/skill_instances.json b/resume_manager_core/fixtures/resume_manager/skill_instances.json
index 6c9dfb0495468f9e1a1352428cd3f9482c59294c..6530634c513ae7df1bd28509511c4b05f78d7e5c 100644
--- a/resume_manager_core/fixtures/resume_manager/skill_instances.json
+++ b/resume_manager_core/fixtures/resume_manager/skill_instances.json
@@ -3,8 +3,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 1,
     "fields": {
-        "resume": 1,
-        "category": "Operating Systems",
+        "category": 1,
         "name": "Windows",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -14,8 +13,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 2,
     "fields": {
-        "resume": 1,
-        "category": "Operating Systems",
+        "category": 1,
         "name": "Mac",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -25,8 +23,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 3,
     "fields": {
-        "resume": 1,
-        "category": "Operating Systems",
+        "category": 1,
         "name": "Linux (Ubuntu)",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -36,8 +33,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 4,
     "fields": {
-        "resume": 1,
-        "category": "Office Software",
+        "category": 2,
         "name": "Microsoft Word",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -47,8 +43,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 5,
     "fields": {
-        "resume": 1,
-        "category": "Office Software",
+        "category": 2,
         "name": "Microsoft Excel",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -58,8 +53,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 6,
     "fields": {
-        "resume": 1,
-        "category": "Office Software",
+        "category": 2,
         "name": "Microsoft Powerpoint",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -69,8 +63,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 7,
     "fields": {
-        "resume": 1,
-        "category": "Office Software",
+        "category": 2,
         "name": "Notepad",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -80,8 +73,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 8,
     "fields": {
-        "resume": 1,
-        "category": "Editing Software",
+        "category": 3,
         "name": "Adobe Photoshop",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -91,8 +83,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 9,
     "fields": {
-        "resume": 1,
-        "category": "Editing Software",
+        "category": 3,
         "name": "Adobe Illustrator",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -102,8 +93,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 10,
     "fields": {
-        "resume": 1,
-        "category": "Editing Software",
+        "category": 3,
         "name": "Adobe After Effects",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -113,8 +103,7 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 11,
     "fields": {
-        "resume": 1,
-        "category": "Editing Software",
+        "category": 3,
         "name": "Gimp",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -124,11 +113,310 @@
     "model": "resume_manager_core.skillinstance",
     "pk": 12,
     "fields": {
-        "resume": 1,
-        "category": "Editing Software",
+        "category": 3,
         "name": "Microsoft Paint",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 13,
+    "fields": {
+        "category": 4,
+        "name": "Bash",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 14,
+    "fields": {
+        "category": 4,
+        "name": "C",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 15,
+    "fields": {
+        "category": 4,
+        "name": "C#",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 16,
+    "fields": {
+        "category": 4,
+        "name": "HTML/CSS/JavaScript",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 17,
+    "fields": {
+        "category": 4,
+        "name": "Php",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 18,
+    "fields": {
+        "category": 4,
+        "name": "Python",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 19,
+    "fields": {
+        "category": 4,
+        "name": "SASS",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 20,
+    "fields": {
+        "category": 4,
+        "name": "SQL",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 21,
+    "fields": {
+        "category": 5,
+        "name": "Django",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 22,
+    "fields": {
+        "category": 5,
+        "name": "JQuery",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 23,
+    "fields": {
+        "category": 5,
+        "name": "Keras",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 24,
+    "fields": {
+        "category": 5,
+        "name": "Laravel",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 25,
+    "fields": {
+        "category": 5,
+        "name": "LDAP",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 26,
+    "fields": {
+        "category": 5,
+        "name": "Flask",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 27,
+    "fields": {
+        "category": 5,
+        "name": "React",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 28,
+    "fields": {
+        "category": 5,
+        "name": "Tesnorflow",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 29,
+    "fields": {
+        "category": 6,
+        "name": "Arch Linux",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 30,
+    "fields": {
+        "category": 6,
+        "name": "Mac OS",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 31,
+    "fields": {
+        "category": 6,
+        "name": "Ubuntu Linux",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 32,
+    "fields": {
+        "category": 6,
+        "name": "Windows OS",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 33,
+    "fields": {
+        "category": 7,
+        "name": "Microsoft Word",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 34,
+    "fields": {
+        "category": 7,
+        "name": "Microsoft Excel",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 35,
+    "fields": {
+        "category": 7,
+        "name": "Microsoft Powerpoint",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 36,
+    "fields": {
+        "category": 7,
+        "name": "Office 365",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 37,
+    "fields": {
+        "category": 8,
+        "name": "Adobe Photoshop",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 38,
+    "fields": {
+        "category": 8,
+        "name": "Gimp",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 39,
+    "fields": {
+        "category": 8,
+        "name": "Adobe Illustrator",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 40,
+    "fields": {
+        "category": 8,
+        "name": "Adobe InDesign",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 41,
+    "fields": {
+        "category": 8,
+        "name": "Microsoft Paint",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 42,
+    "fields": {
+        "category": 8,
+        "name": "Procreate",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
 }
 ]
diff --git a/resume_manager_core/management/commands/resume_manager_core__loadfixtures.py b/resume_manager_core/management/commands/resume_manager_core__loadfixtures.py
index f976ba2627b0008a5a783e65e0096acda180a7f6..2e01d587c2dd6f20b58e8b3df5ba63eff7f2d120 100644
--- a/resume_manager_core/management/commands/resume_manager_core__loadfixtures.py
+++ b/resume_manager_core/management/commands/resume_manager_core__loadfixtures.py
@@ -42,7 +42,9 @@ class Command(BaseCommand):
         self.populate_contact_info()
         self.populate_education_instances()
         self.populate_experience_instances()
+        self.populate_skill_categories()
         self.populate_skill_instances()
+        self.populate_reference_instances()
 
         print('{0}RESUME_MANAGER_CORE{1}: {2}Fixture Loading{3} complete.\n'.format(
             ConsoleColors.purple,
@@ -83,18 +85,30 @@ class Command(BaseCommand):
 
     def populate_education_instances(self):
         """
-        Loads fixtures for EducationInstances models.
+        Loads fixtures for EducationInstance models.
         """
         call_command('loaddata', 'resume_manager/education_instances.json')
 
     def populate_experience_instances(self):
         """
-        Loads fixtures for ExperienceInstances models.
+        Loads fixtures for ExperienceInstance models.
         """
         call_command('loaddata', 'resume_manager/experience_instances.json')
 
+    def populate_skill_categories(self):
+        """
+        Loads fixtures for SkillCategory models.
+        """
+        call_command('loaddata', 'resume_manager/skill_categories.json')
+
     def populate_skill_instances(self):
         """
-        Loads fixtures for SkillInstances models.
+        Loads fixtures for SkillInstance models.
         """
         call_command('loaddata', 'resume_manager/skill_instances.json')
+
+    def populate_reference_instances(self):
+        """
+        Loads fixtures for ReferenceInstance models.
+        """
+        call_command('loaddata', 'resume_manager/reference_instances.json')
diff --git a/resume_manager_core/management/commands/resume_manager_core__seed.py b/resume_manager_core/management/commands/resume_manager_core__seed.py
index 0e9c2ca0b5a1e8434d1581b26c6a9862e859d506..173997e7ae68511b17424893d10fccd1c234a5a4 100644
--- a/resume_manager_core/management/commands/resume_manager_core__seed.py
+++ b/resume_manager_core/management/commands/resume_manager_core__seed.py
@@ -56,7 +56,9 @@ class Command(BaseCommand):
         self.create_contact_info(model_count)
         self.create_education_instances(model_count)
         self.create_experience_instances(model_count)
+        self.create_skill_categories(model_count)
         self.create_skill_instances(model_count)
+        self.create_reference_instances(model_count)
 
         print('{0}RESUME_MANAGER{1}: {2}Seeding{3} complete.\n'.format(
             ConsoleColors.purple,
@@ -128,6 +130,15 @@ class Command(BaseCommand):
 
         # Seed logic goes here.
 
+    def create_skill_categories(self, model_count):
+        """
+        Create seeds for SkillCategory models.
+        """
+        # Load preset fixtures.
+        app_fixtures.populate_skill_categories()
+
+        # Seed logic goes here.
+
     def create_skill_instances(self, model_count):
         """
         Create seeds for SkillInstance models.
@@ -136,3 +147,12 @@ class Command(BaseCommand):
         app_fixtures.populate_skill_instances()
 
         # Seed logic goes here.
+
+    def create_reference_instances(self, model_count):
+        """
+        Create seeds for ReferenceInstance models.
+        """
+        # Load preset fixtures.
+        app_fixtures.populate_reference_instances()
+
+        # Seed logic goes here.
diff --git a/resume_manager_core/models.py b/resume_manager_core/models.py
index ff76ad1240b5b80dcc69e8f19c4210b0bfb97fd3..49656bed1e212982e86f512067f5f98b980e7ce2 100644
--- a/resume_manager_core/models.py
+++ b/resume_manager_core/models.py
@@ -11,6 +11,7 @@ NOTE: While many of these models could be generalized by removing the
 """
 
 # Third-Party Imports.
+import phonenumbers
 from django.db import models
 from django.conf import settings
 from django.core.exceptions import ValidationError
@@ -83,6 +84,7 @@ class ResumeSection(WorkspaceModel):
     DISPLAY_CATEGORY__EDUCATION = 4
     DISPLAY_CATEGORY__EXPERIENCE = 5
     DISPLAY_CATEGORY__SKILLS = 6
+    DISPLAY_CATEGORY__REFERENCES = 7
     DISPLAY_CATEGORY_CHOICES = (
         (DISPLAY_CATEGORY__NONE, 'None'),
         (DISPLAY_CATEGORY__CONTACT, 'Name'),
@@ -91,6 +93,7 @@ class ResumeSection(WorkspaceModel):
         (DISPLAY_CATEGORY__EDUCATION, 'Education'),
         (DISPLAY_CATEGORY__EXPERIENCE, 'Experience'),
         (DISPLAY_CATEGORY__SKILLS, 'Skills'),
+        (DISPLAY_CATEGORY__REFERENCES, 'References'),
     )
 
     # Relationship Keys.
@@ -100,6 +103,7 @@ class ResumeSection(WorkspaceModel):
 
     # Model fields.
     name = models.CharField(max_length=settings.MAX_LENGTH)
+    description = models.CharField(max_length=settings.MAX_LENGTH, blank=True, null=True)
     display_category = models.PositiveSmallIntegerField(choices=DISPLAY_CATEGORY_CHOICES, default=0)
     separator_before = models.BooleanField(default=False)
     separator_after = models.BooleanField(default=False)
@@ -109,6 +113,7 @@ class ResumeSection(WorkspaceModel):
     resume.help_text = 'Resume that section applies to.'
     parent_section.help_text = 'Parent section/subsection to nest within.'
     name.help_text = 'Name to help identify section purpose.'
+    description.help_text = 'Brief description line to show at top of resume section, if desired.'
     display_category.help_text = 'Indicates what content (if any) should display in section.'
     separator_before.help_text = 'Indicates if a separator should be placed before section elements.'
     separator_after.help_text = 'indicates if a separator should be placed after section elements.'
@@ -193,7 +198,7 @@ class EducationInstance(WorkspaceModel):
     class Meta:
         verbose_name = 'Education Instance'
         verbose_name_plural = 'Education Instances'
-        ordering = ('order', 'date_end', 'date_start', 'name', 'degree', 'id')
+        ordering = ('resume', 'order', 'date_end', 'date_start', 'name', 'degree', 'id')
 
     def __str__(self):
         return '{0} - {1}'.format(self.name, self.degree)
@@ -228,6 +233,7 @@ class ExperienceInstance(WorkspaceModel):
     # Model fields.
     name = models.CharField(max_length=settings.MAX_LENGTH)
     position = models.CharField(max_length=settings.MAX_LENGTH)
+    description = models.TextField(max_length=500, blank=True, null=True)
     date_start = models.DateField()
     date_end = models.DateField(blank=True, null=True)
     order = SmallIntegerRangeField(default=0, min_value=0, max_value=100)
@@ -235,6 +241,7 @@ class ExperienceInstance(WorkspaceModel):
     # Field helper text.
     name.help_text = 'Name of company/workplace.'
     position.help_text = 'Title of position.'
+    description.help_text = 'Description of position.'
     date_start.help_text = 'Initial hiring date.'
     date_end.help_text = 'Termination date, or none if ongoing.'
     order.help_text = 'Ordering in relation to other experience instances in the same resume.'
@@ -242,7 +249,7 @@ class ExperienceInstance(WorkspaceModel):
     class Meta:
         verbose_name = 'Experience Instance'
         verbose_name_plural = 'Experience Instances'
-        ordering = ('order', 'date_end', 'date_start', 'name', 'position', 'id')
+        ordering = ('resume', 'order', 'date_end', 'date_start', 'name', 'position', 'id')
 
     def __str__(self):
         return '{0} - {1}'.format(self.name, self.position)
@@ -255,23 +262,77 @@ class ExperienceInstance(WorkspaceModel):
             raise ValidationError('Start date cannot come after end date.')
 
 
-class SkillInstance(WorkspaceModel):
+class SkillCategory(WorkspaceModel):
     """An instance of applicable skills."""
 
     # Relationship Keys.
     resume = models.ForeignKey('Resume', on_delete=models.CASCADE)
 
     # Model fields.
-    category = models.CharField(max_length=settings.MAX_LENGTH, blank=True, null=True)
+    name = models.CharField(max_length=settings.MAX_LENGTH)
+    order = SmallIntegerRangeField(default=0, min_value=0, max_value=100)
+
+    # Field helper text.
+    name.help_text = 'Name of skill category.'
+    name.help_text = 'Ordering in relation to other skill categories in the same resume.'
+
+    class Meta:
+        verbose_name = 'Skill Category'
+        verbose_name_plural = 'Skill Categories'
+        ordering = ('resume', 'order', 'name', 'id')
+        unique_together = (
+            ['resume', 'name'],
+        )
+
+    def __str__(self):
+        return '{0} - {1}'.format(self.resume, self.name)
+
+
+class SkillInstance(WorkspaceModel):
+    """An instance of applicable skills."""
+
+    # Relationship Keys.
+    category = models.ForeignKey('SkillCategory', on_delete=models.CASCADE)
+
+    # Model fields.
     name = models.CharField(max_length=settings.MAX_LENGTH)
 
     class Meta:
         verbose_name = 'Skill Instance'
         verbose_name_plural = 'Skill Instances'
         ordering = ('category', 'name', 'id')
+        unique_together = (
+            ['category', 'name'],
+        )
+
+    def __str__(self):
+        return '{0} - {1} - {2}'.format(self.category.resume, self.category, self.name)
+
+
+class ReferenceInstance(WorkspaceModel):
+    """An instance of a contact reference."""
+
+    # Relationship Keys.
+    resume = models.ForeignKey('Resume', on_delete=models.CASCADE)
+
+    # Model fields.
+    name = models.CharField(max_length=settings.MAX_LENGTH)
+    company = models.CharField(max_length=settings.MAX_LENGTH)
+    phone_number = PhoneNumberField()
+    email = EmailField(max_length=settings.MAX_LENGTH)
+    order = SmallIntegerRangeField(default=0, min_value=0, max_value=100)
+
+    # Field helper text.
+    name.help_text = 'Reference\'s name.'
+    company.help_text = 'Reference\'s employment/job title.'
+    phone_number.help_text = 'Reference\'s contact phone.'
+    email.help_text = 'Reference\'s contact email.'
+    order.help_text = 'Ordering in relation to other reference instances in the same resume.'
+
+    class Meta:
+        verbose_name = 'Reference Instance'
+        verbose_name_plural = 'Reference Instances'
+        ordering = ('resume', 'order', 'name', 'company', 'id')
 
     def __str__(self):
-        if self.category:
-            return '{0} - {1}'.format(self.category, self.name)
-        else:
-            return '{0}'.format(self.name)
+        return '{0} - {1}'.format(self.resume, self.name)
diff --git a/resume_manager_core/views.py b/resume_manager_core/views.py
index f6eedd88123f17936b770494444cd1ec917214f1..197ced48b92504f5dcc3f567b3516b8ebc527eb7 100644
--- a/resume_manager_core/views.py
+++ b/resume_manager_core/views.py
@@ -23,6 +23,8 @@ from .models import (
     ContactInfo,
     EducationInstance,
     ExperienceInstance,
+    ReferenceInstance,
+    SkillCategory,
     SkillInstance,
 )
 
@@ -139,6 +141,7 @@ class DisplayResume(DetailView):
             # Note: We always associate the base "page" styles with the outer-most pages.
             resume_data.append({
                 'section': resume_page,
+                'section_description': None,
                 'section_children': section_children_data,
                 'section_css': section_css_data,
                 'separator_before': False,
@@ -147,28 +150,24 @@ class DisplayResume(DetailView):
             })
 
         # Organize resume data into parse-able structures.
-        skills = SkillInstance.objects.filter(resume=self.resume)
+        skill_categories = SkillCategory.objects.filter(resume=self.resume)
+        skills = SkillInstance.objects.filter(category__in=skill_categories)
         skill_data = []
-        category_data = None
         if len(skills) > 0:
-            current_skill_category = ''
+            for category in skill_categories:
 
-            for skill in skills:
+                category_data = {
+                    'category': category.name,
+                    'skills': [],
+                }
 
-                # Check if handling for new category.
-                if current_skill_category != skill.category:
-                    # Create new category.
-                    if category_data is not None:
-                        skill_data.append(category_data)
-                    current_skill_category = skill.category
-                    category_data = {
-                        'category': skill.category,
-                        'skills': [],
-                    }
+                # Add all skills that
+                for skill in skills:
+                    if skill.category == category:
+                        # Add skill to category.
+                        category_data['skills'].append(skill.name)
 
-                # Add skill to category.
-                category_data['skills'].append(skill.name)
-            skill_data.append(category_data)
+                skill_data.append(category_data)
 
         # Pull together possible resume content.
         resume_content = {
@@ -180,6 +179,7 @@ class DisplayResume(DetailView):
             'education': EducationInstance.objects.filter(resume=self.resume) or None,
             'experience': ExperienceInstance.objects.filter(resume=self.resume) or None,
             'skills': skill_data,
+            'references': ReferenceInstance.objects.filter(resume=self.resume) or None,
         }
 
         # Update template context.
@@ -232,6 +232,7 @@ class DisplayResume(DetailView):
         # Organize data value.
         return {
             'section': current_section,
+            'section_description': current_section.description,
             'section_children': section_children_data,
             'section_css': section_css_data,
             'separator_before': current_section.separator_before,