diff --git a/resume_manager_core/fixtures/resume_manager/contact_info.json b/resume_manager_core/fixtures/resume_manager/contact_info.json
new file mode 100644
index 0000000000000000000000000000000000000000..fed66562756518267443eaeb257a4a4721bb81d9
--- /dev/null
+++ b/resume_manager_core/fixtures/resume_manager/contact_info.json
@@ -0,0 +1,14 @@
+[
+{
+    "model": "resume_manager_core.contactinfo",
+    "pk": 1,
+    "fields": {
+        "resume": 1,
+        "phone_number": 9255550100,
+        "email": "email@example.com",
+        "website": "www.brandon-rodriguez.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/education_instances.json b/resume_manager_core/fixtures/resume_manager/education_instances.json
new file mode 100644
index 0000000000000000000000000000000000000000..5c1e6261cd283f73bf10985d3b04cbe6cc5de846
--- /dev/null
+++ b/resume_manager_core/fixtures/resume_manager/education_instances.json
@@ -0,0 +1,74 @@
+[
+{
+    "model": "resume_manager_core.educationinstance",
+    "pk": 1,
+    "fields": {
+        "resume": 1,
+        "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": 2,
+    "fields": {
+        "resume": 1,
+        "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": 3,
+    "fields": {
+        "resume": 1,
+        "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"
+    }
+},
+{
+    "model": "resume_manager_core.educationinstance",
+    "pk": 4,
+    "fields": {
+        "resume": 1,
+        "name": "Dummy Institution 1",
+        "degree": "Dummy Degree",
+        "date_start": "2017-08-26",
+        "order": 4,
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.educationinstance",
+    "pk": 5,
+    "fields": {
+        "resume": 1,
+        "name": "Dummy Institution 2",
+        "degree": "Dummy Degree",
+        "date_start": "2017-08-26",
+        "expected_graduation_date": "2019-08-01",
+        "order": 5,
+        "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
new file mode 100644
index 0000000000000000000000000000000000000000..0d4f101c7a37a4c875e6999bee1a287fdb733380
--- /dev/null
+++ b/resume_manager_core/fixtures/resume_manager/experience_instances.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/resume_manager_core/fixtures/resume_manager/resume_sections.json b/resume_manager_core/fixtures/resume_manager/resume_sections.json
index 8b5f0a3bbb2acca568598ef343076fe33ec68176..3d756d3ab139a30033a7770a4af1947d110ae6ec 100644
--- a/resume_manager_core/fixtures/resume_manager/resume_sections.json
+++ b/resume_manager_core/fixtures/resume_manager/resume_sections.json
@@ -18,7 +18,7 @@
         "resume": 1,
         "parent_section": 1,
         "name": "Header Section",
-        "css": [2, 4, 18, 19],
+        "css": [2, 18, 19, 27],
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
@@ -30,7 +30,7 @@
         "resume": 1,
         "parent_section": 1,
         "name": "Body Section",
-        "css": [3, 11, 19],
+        "css": [3, 10, 19],
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
@@ -42,7 +42,7 @@
         "resume": 1,
         "parent_section": 1,
         "name": "Footer Section",
-        "css": [2, 4, 18, 19],
+        "css": [2, 6, 18, 19, 41],
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
@@ -54,7 +54,7 @@
         "resume": 1,
         "parent_section": 2,
         "name": "Header Left",
-        "css": [20],
+        "css": [20, 29],
         "display_category": 1,
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -67,7 +67,7 @@
         "resume": 1,
         "parent_section": 2,
         "name": "Header Right",
-        "css": [22],
+        "css": [22, 29],
         "display_category": 2,
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
@@ -80,7 +80,7 @@
         "resume": 1,
         "parent_section": 3,
         "name": "Contact Info",
-        "css": [],
+        "css": [3, 16],
         "display_category": 3,
         "separator_before": true,
         "date_created": "2023-01-01T08:00:00.000Z",
@@ -94,7 +94,7 @@
         "resume": 1,
         "parent_section": 3,
         "name": "Education",
-        "css": [],
+        "css": [3, 16],
         "display_category": 4,
         "separator_before": true,
         "date_created": "2023-01-01T08:00:00.000Z",
@@ -106,12 +106,10 @@
     "pk": 9,
     "fields": {
         "resume": 1,
-        "parent_section": 3,
+        "parent_section": 4,
         "name": "Skills",
-        "css": [],
-        "display_category": 5,
-        "separator_before": true,
-        "separator_after": true,
+        "css": [3, 16],
+        "display_category": 6,
         "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 c082936402ec8451a264e9188f2a644e88668ca4..8e9dd2b9fa2cdf7015bea8b25d76205da2e191fc 100644
--- a/resume_manager_core/fixtures/resume_manager/resumes.json
+++ b/resume_manager_core/fixtures/resume_manager/resumes.json
@@ -6,7 +6,7 @@
         "name": "Example Blocky-Purple Resume",
         "user": 1,
         "theme": 1,
-        "profession": "Example <br> Profession",
+        "profession": "Example Profession <br> Underwater Basket Weaver",
         "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/section_css.json b/resume_manager_core/fixtures/resume_manager/section_css.json
index 34736361fcd04d7300320952178f13c651dedea6..d8c3c639d1ec86cd5be4232586a9eef360fc394b 100644
--- a/resume_manager_core/fixtures/resume_manager/section_css.json
+++ b/resume_manager_core/fixtures/resume_manager/section_css.json
@@ -4,7 +4,7 @@
     "pk": 1,
     "fields": {
         "name": "page",
-        "css_classes": "page full-size",
+        "css_classes": "page",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
@@ -74,7 +74,7 @@
     "pk": 8,
     "fields": {
         "name": "flex-ratio 50",
-        "css_classes": "flex flex-ratio-50%",
+        "css_classes": "flex flex-ratio-50",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
@@ -143,8 +143,8 @@
     "model": "resume_manager_core.sectioncss",
     "pk": 15,
     "fields": {
-        "name": "flex-align-space-between",
-        "css_classes": "flex flex-align-space-between",
+        "name": "flex-justify-space-between",
+        "css_classes": "flex flex-justify-space-between",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
@@ -153,8 +153,8 @@
     "model": "resume_manager_core.sectioncss",
     "pk": 16,
     "fields": {
-        "name": "flex-align-space-around",
-        "css_classes": "flex flex-align-space-around",
+        "name": "flex-justify-space-around",
+        "css_classes": "flex flex-justify-space-around",
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
@@ -258,5 +258,165 @@
         "date_created": "2023-01-01T08:00:00.000Z",
         "date_modified": "2023-01-01T08:00:00.000Z"
     }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 27,
+    "fields": {
+        "name": "flex-ratio 5%",
+        "css_classes": "flex flex-ratio-05",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 28,
+    "fields": {
+        "name": "flex-ratio 8%",
+        "css_classes": "flex flex-ratio-08",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 29,
+    "fields": {
+        "name": "padding 00",
+        "css_classes": "padding-00",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 30,
+    "fields": {
+        "name": "padding 05",
+        "css_classes": "padding-05",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 31,
+    "fields": {
+        "name": "padding 10",
+        "css_classes": "padding-10",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 32,
+    "fields": {
+        "name": "padding 15",
+        "css_classes": "padding-15",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 33,
+    "fields": {
+        "name": "padding 20",
+        "css_classes": "padding-20",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 34,
+    "fields": {
+        "name": "padding 25",
+        "css_classes": "padding-25",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 35,
+    "fields": {
+        "name": "margin 00",
+        "css_classes": "margin-00",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 36,
+    "fields": {
+        "name": "margin 05",
+        "css_classes": "margin-05",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 37,
+    "fields": {
+        "name": "margin 10",
+        "css_classes": "margin-10",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 38,
+    "fields": {
+        "name": "margin 15",
+        "css_classes": "margin-15",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 39,
+    "fields": {
+        "name": "margin 20",
+        "css_classes": "margin-20",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 40,
+    "fields": {
+        "name": "margin 25",
+        "css_classes": "margin-25",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 41,
+    "fields": {
+        "name": "flex-justify-space-evenly",
+        "css_classes": "flex flex-justify-space-evenly",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.sectioncss",
+    "pk": 42,
+    "fields": {
+        "name": "flex-wrap",
+        "css_classes": "flex flex-justify-space-evenly",
+        "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
new file mode 100644
index 0000000000000000000000000000000000000000..6c9dfb0495468f9e1a1352428cd3f9482c59294c
--- /dev/null
+++ b/resume_manager_core/fixtures/resume_manager/skill_instances.json
@@ -0,0 +1,134 @@
+[
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 1,
+    "fields": {
+        "resume": 1,
+        "category": "Operating Systems",
+        "name": "Windows",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 2,
+    "fields": {
+        "resume": 1,
+        "category": "Operating Systems",
+        "name": "Mac",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 3,
+    "fields": {
+        "resume": 1,
+        "category": "Operating Systems",
+        "name": "Linux (Ubuntu)",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 4,
+    "fields": {
+        "resume": 1,
+        "category": "Office Software",
+        "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": 5,
+    "fields": {
+        "resume": 1,
+        "category": "Office Software",
+        "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": 6,
+    "fields": {
+        "resume": 1,
+        "category": "Office Software",
+        "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": 7,
+    "fields": {
+        "resume": 1,
+        "category": "Office Software",
+        "name": "Notepad",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 8,
+    "fields": {
+        "resume": 1,
+        "category": "Editing Software",
+        "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": 9,
+    "fields": {
+        "resume": 1,
+        "category": "Editing Software",
+        "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": 10,
+    "fields": {
+        "resume": 1,
+        "category": "Editing Software",
+        "name": "Adobe After Effects",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 11,
+    "fields": {
+        "resume": 1,
+        "category": "Editing Software",
+        "name": "Gimp",
+        "date_created": "2023-01-01T08:00:00.000Z",
+        "date_modified": "2023-01-01T08:00:00.000Z"
+    }
+},
+{
+    "model": "resume_manager_core.skillinstance",
+    "pk": 12,
+    "fields": {
+        "resume": 1,
+        "category": "Editing Software",
+        "name": "Microsoft Paint",
+        "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 156d0fd3b4c967e80566f484402b31d9de59bfda..f976ba2627b0008a5a783e65e0096acda180a7f6 100644
--- a/resume_manager_core/management/commands/resume_manager_core__loadfixtures.py
+++ b/resume_manager_core/management/commands/resume_manager_core__loadfixtures.py
@@ -39,10 +39,10 @@ class Command(BaseCommand):
         self.populate_resumes()
         self.populate_section_css()
         self.populate_resume_sections()
-
-        # self.populate_resume_section_intermediaries()
-        # self.populate_data_section_headers()
-        # self.populate_data_section_items()
+        self.populate_contact_info()
+        self.populate_education_instances()
+        self.populate_experience_instances()
+        self.populate_skill_instances()
 
         print('{0}RESUME_MANAGER_CORE{1}: {2}Fixture Loading{3} complete.\n'.format(
             ConsoleColors.purple,
@@ -75,199 +75,26 @@ class Command(BaseCommand):
         """
         call_command('loaddata', 'resume_manager/resume_sections.json')
 
-    def populate_resume_section_intermediaries(self):
+    def populate_contact_info(self):
         """
-        Loads fixtures for ResumeToSectionIntermediary models.
+        Loads fixtures for ContactInfo models.
         """
+        call_command('loaddata', 'resume_manager/contact_info.json')
 
-        # Get "example_user" to associate all example resumes with.
-        example_user = get_user_model().objects.get(username='example_user')
-
-        # Create an example resume for each theme.
-        resume_themes = ResumeTheme.objects.filter(name__startswith='Blocky ')
-        for resume_theme in resume_themes:
-
-            # Create new example resume for theme.
-            current_resume = Resume.objects.create(
-                user=example_user,
-                theme=resume_theme,
-                name='Example {0} Resume'.format(resume_theme.name),
-            )
-
-            # Get resume section models.
-            section_format__page = ResumeSection.objects.get(name='Page')
-            section_format__row__minimal = ResumeSection.objects.get(name='Row: Minimal')
-            section_format__row__full = ResumeSection.objects.get(name='Row: Full')
-            section_format__row__one_fifth = ResumeSection.objects.get(name='Row: One-Fifth')
-            section_format__row__three_fifths = ResumeSection.objects.get(name='Row: Three-Fifths')
-            section_format__column__minimal = ResumeSection.objects.get(name='Column: Minimal')
-            section_format__column__full = ResumeSection.objects.get(name='Column: Full')
-            section_format__text__left = ResumeSection.objects.get(name='Text: Left-Align')
-            section_format__text__center = ResumeSection.objects.get(name='Text: Center-Align')
-            section_format__text__right = ResumeSection.objects.get(name='Text: Right-Align')
-            section_format__style__full_color = ResumeSection.objects.get(name='Style: Full Color')
-
-            # For each resume, create 4 pages to showcase different possible formats.
-            page_1 = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                section_format=section_format__page,
-            )
-            page_2 = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                section_format=section_format__page,
-            )
-            page_3 = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                section_format=section_format__page,
-            )
-            page_4 = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                section_format=section_format__page,
-            )
-
-            # Create page 1 main subsections.
-            # Page one is in standard <header, middle, footer> format.
-            page_1_header = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1,
-                section_format=section_format__row__one_fifth,
-            )
-            page_1_header_background = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_header,
-                section_format=section_format__style__full_color,
-            )
-            page_1_header_left = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_header_background,
-                section_format=section_format__row__full,
-            )
-            page_1_header_name = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_header_left,
-                section_format=section_format__text__left,
-                title='Example User',
-            )
-            page_1_header_right = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_header_background,
-                section_format=section_format__column__full,
-            )
-            page_1_header_profession = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_header_right,
-                section_format=section_format__text__center
-            )
-            ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_header_profession,
-                section_format=section_format__text__right,
-                title='Software',
-            )
-            ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_header_profession,
-                section_format=section_format__text__right,
-                title='Engineer',
-            )
-            page_1_middle = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1,
-                section_format=section_format__column__full,
-            )
-            page_1_middle_contact = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_middle,
-                section_format=section_format__column__full,
-                title='Contact Info',
-            )
-            page_1_middle_experience = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_middle,
-                section_format=section_format__column__full,
-                title='Experience',
-            )
-            page_1_middle_education = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_middle,
-                section_format=section_format__column__full,
-                title='Education',
-            )
-            page_1_footer = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1,
-                section_format=section_format__row__one_fifth,
-            )
-            page_1_footer_background = ResumeToSectionIntermediary.objects.create(
-                resume=current_resume,
-                parent_section=page_1_footer,
-                section_format=section_format__style__full_color,
-            )
-
-            # Create data for page 1.
-            DataKeyValue.objects.create(
-                resume_section=page_1_middle_contact,
-                data_key='Phone',
-                data_value='(123) 456-7890',
-            )
-            DataKeyValue.objects.create(
-                resume_section=page_1_middle_contact,
-                data_key='Email',
-                data_value=example_user.email,
-            )
-            DataKeyValue.objects.create(
-                resume_section=page_1_middle_contact,
-                data_key='GitHub',
-                data_value='idk.github.com/example_user',
-            )
-            DataItem.objects.create(
-                resume_section=page_1_middle_experience,
-                title_left='Generic Company - Software Engineer',
-                title_right='2020 - Present',
-                item='Nulla ut mollis ipsum. Fusce ultricies a lectus ac condimentum. Aliquam vitae iaculis nibh. Sed nec tortor ac arcu tincidunt vestibulum sit amet in neque.',
-                show_bullet_point=False,
-            )
-            DataItem.objects.create(
-                resume_section=page_1_middle_experience,
-                item='Donec varius velit sed ultricies pellentesque. Ut pulvinar ut justo vel scelerisque. Vestibulum convallis nunc tellus, vitae elementum nibh interdum sed. Donec eget magna porta nisl pulvinar gravida id non risus.',
-                show_bullet_point=False,
-            )
-            # DataItem.objects.create(
-            #     resume_section=page_1_middle_experience,
-            #     item='Nullam mollis odio tortor, sed interdum quam porttitor eu. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Etiam at nulla vulputate, imperdiet velit id, molestie sem. Aliquam tellus urna, laoreet id risus sed, ullamcorper ornare massa. Maecenas quis metus a eros rutrum lacinia. Nullam fermentum sit amet leo at viverra. Ut lobortis leo feugiat congue finibus. Ut vitae volutpat purus, sit amet maximus magna. Vestibulum bibendum, ex quis aliquet ultricies, quam dui ultrices arcu, eget laoreet nunc metus eget sapien. Maecenas dictum leo vitae risus vestibulum, ac posuere diam molestie. In hac habitasse platea dictumst. Etiam sapien ex, ullamcorper a hendrerit ac, luctus vitae metus. Mauris euismod leo vel diam efficitur varius.',
-            #     show_bullet_point=False,
-            # )
-            DataItem.objects.create(
-                resume_section=page_1_middle_experience,
-                title_left='Generic Company - IT Support',
-                title_right='2015 - 2020',
-                item='Nunc eu purus id sapien pretium fringilla. Etiam eu mi lobortis, sollicitudin metus finibus, pellentesque nisi. Ut tempus convallis justo, ac euismod dui consequat vitae. Integer iaculis purus nec lorem facilisis aliquam.',
-                show_bullet_point=False,
-            )
-            DataItem.objects.create(
-                resume_section=page_1_middle_experience,
-                item='Vestibulum sagittis dolor vitae ex interdum, at scelerisque orci sollicitudin. Proin urna libero, eleifend at ex vel, tempus auctor tellus. Phasellus posuere sit amet tortor et interdum. Morbi viverra vehicula sem, a lobortis neque tincidunt ut. Donec viverra vulputate metus. Sed quis tortor eget lorem tempor iaculis a eu mauris.',
-                show_bullet_point=False,
-            )
-            # DataItem.objects.create(
-            #     resume_section=page_1_middle_experience,
-            #     item='Proin semper est sapien, eu pellentesque libero efficitur eget. Aliquam vel commodo felis. In id tortor libero. Nam diam ante, pulvinar eget orci sed, sagittis scelerisque odio. Praesent tristique sagittis enim, ac malesuada risus lobortis ut. Proin sit amet lacus sed diam commodo hendrerit convallis at lectus. Donec vestibulum orci enim, ut dignissim velit vehicula eget. Vivamus nunc dui, rutrum sit amet nunc vitae, placerat maximus eros. Nam elit augue, accumsan sit amet porta ac, congue vitae arcu. Mauris imperdiet placerat ante pharetra iaculis. Cras ut arcu pellentesque, gravida ipsum quis, porta velit.',
-            #     show_bullet_point=False,
-            # )
-
-            # Create page 2 main subsections.
-            # Mimics a full resume in single-page format.
+    def populate_education_instances(self):
+        """
+        Loads fixtures for EducationInstances models.
+        """
+        call_command('loaddata', 'resume_manager/education_instances.json')
 
-    def populate_data_section_headers(self):
+    def populate_experience_instances(self):
         """
-        Loads fixtures for DataSectionHeader models.
+        Loads fixtures for ExperienceInstances models.
         """
-        # No fixtures yet.
-        pass
+        call_command('loaddata', 'resume_manager/experience_instances.json')
 
-    def populate_data_section_items(self):
+    def populate_skill_instances(self):
         """
-        Loads fixtures for DataSectionItem models.
+        Loads fixtures for SkillInstances models.
         """
-        # No fixtures yet.
-        pass
+        call_command('loaddata', 'resume_manager/skill_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 b2962741038f5254453b5666fff6675dbd60de9e..0e9c2ca0b5a1e8434d1581b26c6a9862e859d506 100644
--- a/resume_manager_core/management/commands/resume_manager_core__seed.py
+++ b/resume_manager_core/management/commands/resume_manager_core__seed.py
@@ -53,9 +53,10 @@ class Command(BaseCommand):
         self.create_resumes(model_count)
         self.create_section_css(model_count)
         self.create_resume_sections(model_count)
-        # self.create_resume_section_intermediaries(model_count)
-        # self.create_data_section_headers(model_count)
-        # self.create_data_section_items(model_count)
+        self.create_contact_info(model_count)
+        self.create_education_instances(model_count)
+        self.create_experience_instances(model_count)
+        self.create_skill_instances(model_count)
 
         print('{0}RESUME_MANAGER{1}: {2}Seeding{3} complete.\n'.format(
             ConsoleColors.purple,
@@ -100,29 +101,38 @@ class Command(BaseCommand):
 
         # Seed logic goes here.
 
-    def create_resume_section_intermediaries(self, model_count):
+    def create_contact_info(self, model_count):
         """
-        Create seeds for ResumeToSectionIntermediary models.
+        Create seeds for ContactInfo models.
         """
         # Load preset fixtures.
-        app_fixtures.populate_resume_section_intermediaries()
+        app_fixtures.populate_contact_info()
 
         # Seed logic goes here.
 
-    def create_data_section_headers(self, model_count):
+    def create_education_instances(self, model_count):
         """
-        Create seeds for DataSectionHeader models.
+        Create seeds for EducationInstance models.
         """
         # Load preset fixtures.
-        app_fixtures.populate_data_section_headers()
+        app_fixtures.populate_education_instances()
 
         # Seed logic goes here.
 
-    def create_data_section_items(self, model_count):
+    def create_experience_instances(self, model_count):
         """
-        Create seeds for DataSectionItem models.
+        Create seeds for ExperienceInstance models.
         """
         # Load preset fixtures.
-        app_fixtures.populate_data_section_items()
+        app_fixtures.populate_experience_instances()
+
+        # Seed logic goes here.
+
+    def create_skill_instances(self, model_count):
+        """
+        Create seeds for SkillInstance models.
+        """
+        # Load preset fixtures.
+        app_fixtures.populate_skill_instances()
 
         # Seed logic goes here.
diff --git a/resume_manager_core/models.py b/resume_manager_core/models.py
index 220b3ee4366c7f8bfde3a33c5e6791e54e6e8000..ff76ad1240b5b80dcc69e8f19c4210b0bfb97fd3 100644
--- a/resume_manager_core/models.py
+++ b/resume_manager_core/models.py
@@ -1,5 +1,13 @@
 """
 Models for ResumeManager app.
+
+NOTE: While many of these models could be generalized by removing the
+    "resume" FK relation, they are intentionally left as-is, so that a user
+    can completely tailor each resume 100% separately from others.
+
+    In other words, the redundancy ensures that prior resume values have
+    no forced implications on future resumes. Values can be copied if desired,
+    but can also be wholy unique from individual resume to resume.
 """
 
 # Third-Party Imports.
@@ -10,7 +18,12 @@ from django.utils import timezone
 from phonenumber_field.modelfields import PhoneNumberField
 
 # Internal Imports.
-from core.models import EmailField, WebsiteField, WorkspaceModel
+from core.models import (
+    EmailField,
+    SmallIntegerRangeField,
+    WebsiteField,
+    WorkspaceModel,
+)
 
 
 class Resume(WorkspaceModel):
@@ -133,7 +146,7 @@ class ContactInfo(WorkspaceModel):
     resume = models.ForeignKey('Resume', on_delete=models.CASCADE)
 
     # Model fields.
-    phone_number = PhoneNumberField(blank=True, null=True)
+    phone_number = PhoneNumberField()
     email = EmailField(max_length=settings.MAX_LENGTH)
     website = WebsiteField(max_length=settings.MAX_LENGTH, blank=True, null=True)
     git = models.CharField(max_length=settings.MAX_LENGTH, blank=True, null=True)
@@ -156,162 +169,109 @@ class ContactInfo(WorkspaceModel):
 
 
 class EducationInstance(WorkspaceModel):
-    """."""
+    """An instance of educational experience."""
+
+    # Relationship Keys.
+    resume = models.ForeignKey('Resume', on_delete=models.CASCADE)
 
     # Model fields.
     name = models.CharField(max_length=settings.MAX_LENGTH)
     degree = models.CharField(max_length=settings.MAX_LENGTH)
+    gpa = models.CharField(max_length=settings.MAX_LENGTH, blank=True, null=True)
     date_start = models.DateField()
     date_end = models.DateField(blank=True, null=True)
+    expected_graduation_date = models.DateField(blank=True, null=True)
+    order = SmallIntegerRangeField(default=0, min_value=0, max_value=100)
 
     # Field helper text.
     name.help_text = 'Name of institution.'
     degree.help_text = 'Degree pursued/acquired.'
     date_start.help_text = 'Starting date of pursuing education.'
     date_end.help_text = 'Ending date of finishing education, or none if ongoing.'
+    order.help_text = 'Ordering in relation to other education instances in the same resume.'
 
     class Meta:
         verbose_name = 'Education Instance'
         verbose_name_plural = 'Education Instances'
+        ordering = ('order', 'date_end', 'date_start', 'name', 'degree', 'id')
 
     def __str__(self):
         return '{0} - {1}'.format(self.name, self.degree)
 
+    def clean(self, *args, **kwargs):
+        """
+        Custom cleaning implementation. Includes validation, setting fields, etc.
+        """
+        # Verify date_end (if present) is after date_start.
+        if self.date_end and self.date_start > self.date_end:
+            raise ValidationError('End date cannot come before Start date.')
+
+        # Verify graduation_date is blank if date_end is populated.
+        if self.date_end and self.expected_graduation_date:
+            self.expected_graduation_date = None
+
+        # Verify GPA is blank if date_end is not populated.
+        if not self.date_end:
+            self.gpa = None
+
+        # Verify expected_graduation_date (if present) is after date_start.
+        if self.date_end and self.date_start > self.date_end:
+            raise ValidationError('Expected graduation date cannot come before start date.')
+
 
 class ExperienceInstance(WorkspaceModel):
-    """."""
+    """An instance of work/job experience."""
+
+    # Relationship Keys.
+    resume = models.ForeignKey('Resume', on_delete=models.CASCADE)
 
     # Model fields.
     name = models.CharField(max_length=settings.MAX_LENGTH)
     position = models.CharField(max_length=settings.MAX_LENGTH)
     date_start = models.DateField()
     date_end = models.DateField(blank=True, null=True)
+    order = SmallIntegerRangeField(default=0, min_value=0, max_value=100)
 
     # Field helper text.
     name.help_text = 'Name of company/workplace.'
     position.help_text = 'Title 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.'
 
     class Meta:
         verbose_name = 'Experience Instance'
         verbose_name_plural = 'Experience Instances'
+        ordering = ('order', 'date_end', 'date_start', 'name', 'position', 'id')
 
     def __str__(self):
         return '{0} - {1}'.format(self.name, self.position)
 
+    def clean(self, *args, **kwargs):
+        """
+        Custom cleaning implementation. Includes validation, setting fields, etc.
+        """
+        if self.date_end and self.date_start > self.date_end:
+            raise ValidationError('Start date cannot come after end date.')
 
-# class ResumeToSectionIntermediary(WorkspaceModel):
-#     """An intermediary model that associates a resume and a section.
-#
-#     Can be nested within other section/subsections, denoted by having a "parent".
-#     Each subsection is a unique div.
-#     """
-#
-#     # # Preset field choices.
-#     # DISPLAY_CATEGORY__NONE = 0
-#     # DISPLAY_CATEGORY__EXPERIENCE = 1
-#     # DISPLAY_CATEGORY__EDUCATION = 2
-#     # DISPLAY_CATEGORY__SKILLS = 3
-#     # DISPLAY_CATEGORY_CHOICES = (
-#     #     (DISPLAY_CATEGORY__NONE, 'None'),
-#     #     (DISPLAY_CATEGORY__EXPERIENCE, 'Experience'),
-#     #     (DISPLAY_CATEGORY__EDUCATION, 'Education'),
-#     #     (DISPLAY_CATEGORY__SKILLS, 'Skills'),
-#     # )
-#
-#     # Relationship Keys.
-#     resume = models.ForeignKey('Resume', on_delete=models.CASCADE)
-#     parent_section = models.ForeignKey('self', on_delete=models.CASCADE, blank=True, null=True)
-#     section_format = models.ForeignKey('ResumeSection', on_delete=models.CASCADE)
-#     title = models.CharField(max_length=settings.MAX_LENGTH, blank=True, null=True)
-#     is_data_subsection = models.BooleanField(default=False)
-#     # display_category = models.PositiveSmallIntegerField(choices=DISPLAY_CATEGORY_CHOICES, default=0)
-#
-#     # Field helper text.
-#     resume.help_text = 'The resume to place the section within.'
-#     parent_section.help_text = 'Parent section/subsection to nest within.'
-#     section_format.help_text = 'The section formatting to use within the resume.'
-#     is_data_subsection.help_text = 'Indicates if this is part of a larger parent data section. Results in de-emphasized text.'
-#     # display_category.help_text = 'Category of data to display in section.'
-#
-#     class Meta:
-#         verbose_name = 'Resume-to-Section Intermediary'
-#         verbose_name_plural = 'Resume-to-Section Intermediaries'
-#
-#     def __str__(self):
-#         return '{0} - {1}'.format(self.resume, self.section_format)
-#
-#
-# class DataSectionHeader(WorkspaceModel):
-#     """Implementation of a header for a data section.
-#
-#     Each data section can only have a single header, but one is not required.
-#     """
-#
-#     # Relationship Keys.
-#     resume_section = models.ForeignKey('ResumeToSectionIntermediary', on_delete=models.CASCADE)
-#
-#     # Model fields.
-#     header = models.CharField(max_length=settings.MAX_LENGTH)
-#
-#     class Meta:
-#         verbose_name = 'Data Section Header'
-#         verbose_name_plural = 'Data Section Headers'
-#
-#     def __str__(self):
-#         return '{0} - {1}'.format(self.resume_section.resume, self.header[15:])
-#
-#
-# class DataItem(WorkspaceModel):
-#     """Implementation of a data item.
-#
-#     If a data section has only a single item, then the item is displayed in block/paragraph format.
-#     If a data section has two or more items, then they are displayed in bullet point format.
-#     """
-#
-#     # Relationship Keys.
-#     resume_section = models.ForeignKey('ResumeToSectionIntermediary', on_delete=models.CASCADE)
-#
-#     # Model fields.
-#     title_left = models.CharField(max_length=settings.MAX_LENGTH, blank=True, null=True)
-#     title_right = models.CharField(max_length=settings.MAX_LENGTH, blank=True, null=True)
-#     item = models.TextField(max_length=500)
-#     show_bullet_point = models.BooleanField(default=True)
-#     is_emphasized = models.BooleanField(default=False)
-#     is_minimized = models.BooleanField(default=False)
-#
-#     class Meta:
-#         verbose_name = 'Data Section Item'
-#         verbose_name_plural = 'Data Section Items'
-#
-#     def __str__(self):
-#         return '{0} - {1}'.format(self.resume_section.resume, self.item[15:])
-#
-#     def clean(self):
-#         """
-#         Custom cleaning implementation. Includes validation, setting fields, etc.
-#         """
-#         # Call parent logic.
-#         super().clean()
-#
-#         if self.is_emphasized and self.is_minimized:
-#             raise ValidationError('Data cannot be both emphasized and minimized in style.')
-#
-#
-# class DataKeyValue(WorkspaceModel):
-#     """Implementation of a data key-value pair."""
-#
-#     # Relationship Keys.
-#     resume_section = models.ForeignKey('ResumeToSectionIntermediary', on_delete=models.CASCADE)
-#
-#     # Model fields.
-#     data_key = models.CharField(max_length=settings.MAX_LENGTH)
-#     data_value = models.CharField(max_length=settings.MAX_LENGTH)
-#
-#     class Meta:
-#         verbose_name = 'Data Section Key-Value Pair'
-#         verbose_name_plural = 'Data Section Key-Value Pairs'
-#
-#     def __str__(self):
-#         return '{0} - {1}'.format(self.resume_section.resume, self.data_key)
+
+class SkillInstance(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)
+
+    class Meta:
+        verbose_name = 'Skill Instance'
+        verbose_name_plural = 'Skill Instances'
+        ordering = ('category', 'name', 'id')
+
+    def __str__(self):
+        if self.category:
+            return '{0} - {1}'.format(self.category, self.name)
+        else:
+            return '{0}'.format(self.name)
diff --git a/resume_manager_core/static/resume_manager_core/css/sass/base.scss b/resume_manager_core/static/resume_manager_core/css/sass/base.scss
index 5efe5ed6f594b0dbf5f308c8ade64e6c1214b107..1cda19129a7f66c02fe3771c25feb2c76f5dd5e1 100644
--- a/resume_manager_core/static/resume_manager_core/css/sass/base.scss
+++ b/resume_manager_core/static/resume_manager_core/css/sass/base.scss
@@ -11,4 +11,5 @@
 //================================================================================//
 
 @use './src/_general_styles';
+@use './src/_text_styles';
 @use './src/_resume_blocky';
diff --git a/resume_manager_core/static/resume_manager_core/css/sass/src/_general_styles.scss b/resume_manager_core/static/resume_manager_core/css/sass/src/_general_styles.scss
index a9f09e57e29280159443fbf2894824ef0066929e..9a51303ce8c7d734a5b23c47acc22fa39af59e4f 100644
--- a/resume_manager_core/static/resume_manager_core/css/sass/src/_general_styles.scss
+++ b/resume_manager_core/static/resume_manager_core/css/sass/src/_general_styles.scss
@@ -63,7 +63,7 @@ html {
 
     width: 100%;
     max-width: 8.5in;
-//    height: 100%;
+    // height: 100%;
     max-height: 11in;
     margin: 0;
     padding: 0;
@@ -77,8 +77,6 @@ html {
       @include var.mixin-align-items(center);
       @include var.mixin-flex(1);
 
-      width: 100%;
-      height: 100%;
       margin: 0;
       padding: 0;
     }
@@ -87,16 +85,22 @@ html {
       padding: 5px;
     }
 
+    > div {
+      padding-right: 15px;
+      padding-left: 15px;
+    }
+
     p {
-      width: 100%;
-      height: 100%;
       margin: 0;
       padding: 0;
     }
 
-    h2, h3, h4 {
-      width: 100%;
-      margin: 0;
+    h2, h3, h4, h5, h6 {
+      width: 90%;
+      margin-top: 5px;
+      margin-right: 25px;
+      margin-bottom: 5px;
+      margin-left: 25px;
       padding: 0;
     }
 
@@ -104,6 +108,17 @@ html {
       display: flex;
     }
 
+    div.flex, ul.flex, p.flex {
+        width: 100%;
+    }
+
+    div.subsection, ul.subsection, p.subsection {
+        margin-top: 10px;
+        margin-right: 5px;
+        margin-bottom: 10px;
+        margin-left: 5px;
+    }
+
     .flex-horizontal {
       flex-direction: row;
 
@@ -120,31 +135,72 @@ html {
       flex-direction: column;
 
       hr {
-        width: 95%;
-        margin-top: 15px;
-        margin-right: 20px;
-        margin-bottom: 15px;
-        margin-left: 20px;
+        width: 98%;
       }
     }
 
+    .flex-align-start {
+        @include var.mixin-align-items(flex-start);
+    }
+
+    .flex-align-end {
+        @include var.mixin-align-items(flex-end);
+    }
+
+    .flex-justify-space-between {
+        @include var.mixin-justify-content(space-between);
+    }
+
+    .flex-justify-space-around {
+        @include var.mixin-justify-content(space-around);
+    }
+
+    .flex-justify-space-evenly {
+        @include var.mixin-justify-content(space-evenly);
+    }
+
+    .flex-wrap {
+        @include var.mixin-flex-wrap(wrap);
+    }
+
     li.no-bullet {
       list-style-type: none;
     }
 
-    span.bold {
-      font-weight: bold;
+    .underline {
+      text-decoration: underline;
+    }
+
+    .color-section {
+      h2, h3, h4, h5, h6 {
+        text-align: center;
+      }
     }
 
-    .align-left {
+    .align-left,
+    .align-left > h2,
+    .align-left > h3,
+    .align-left > h4,
+    .align-left > h5,
+    .align-left > h6 {
       text-align: left;
     }
 
-    .align-center {
+    .align-center,
+    .align-center > h2,
+    .align-center > h3,
+    .align-center > h4,
+    .align-center > h5,
+    .align-center > h6{
       text-align: center;
     }
 
-    .align-right {
+    .align-right,
+    .align-right > h2,
+    .align-right > h3,
+    .align-right > h4,
+    .align-right > h5,
+    .align-right > h6{
       text-align: right;
     }
 
@@ -195,6 +251,59 @@ html {
     .flex-ratio-100 {
       flex: 100;
     }
+
+    .margin-00 {
+      margin: 0px !important;
+    }
+
+    .margin-05 {
+      margin: 5px !important;
+    }
+
+    .margin-10 {
+      margin: 10px !important;
+    }
+
+    .margin-15 {
+      margin: 15px !important;
+    }
+
+    .margin-20 {
+      margin: 20px !important;
+    }
+
+   .margin-25 {
+      margin: 25px !important;
+    }
+
+    .padding-00 {
+      padding: 0px !important;
+    }
+
+    .padding-05 {
+      padding: 5px !important;
+    }
+
+    .padding-10 {
+      padding: 10px !important;
+    }
+
+    .padding-15 {
+      padding: 15px !important;
+    }
+
+    .padding-20 {
+      padding: 20px !important;
+    }
+
+    .padding-25 {
+      padding: 25px !important;
+    }
+
+    .width-100 {
+      width: 100%;
+    }
+
   }
 
 }
diff --git a/resume_manager_core/static/resume_manager_core/css/sass/src/_resume_blocky.scss b/resume_manager_core/static/resume_manager_core/css/sass/src/_resume_blocky.scss
index dda248d9d5963d00704a94404920c7c21c7b1a48..74c919b61362bfa4895d43bb4c672d315496acef 100644
--- a/resume_manager_core/static/resume_manager_core/css/sass/src/_resume_blocky.scss
+++ b/resume_manager_core/static/resume_manager_core/css/sass/src/_resume_blocky.scss
@@ -68,10 +68,14 @@ html {
       border-color: #27212e;
     }
 
+    .descriptor {
+        color: #233d74;
+    }
+
     .color-section {
       background-color: #27212e;
 
-        h2, h3, h4 {
+        h2, h3, h4, h5, h6, p {
           color: #fff;
         }
 
diff --git a/resume_manager_core/static/resume_manager_core/css/sass/src/_text_styles.scss b/resume_manager_core/static/resume_manager_core/css/sass/src/_text_styles.scss
new file mode 100644
index 0000000000000000000000000000000000000000..499bba0e4c3e260127065848217741d8124856df
--- /dev/null
+++ b/resume_manager_core/static/resume_manager_core/css/sass/src/_text_styles.scss
@@ -0,0 +1,80 @@
+
+//===================================//
+//==== General Resume Text CSS ====//
+//===================================//
+
+// Generalized text CSS resume views.
+
+
+//================================================================================//
+//==================================== Imports ===================================//
+//================================================================================//
+
+// Import variables.
+@use '../../../../../../../../core/static/core/css/sass/src/variables/init' as var;
+
+
+//================================================================================//
+//==================================== Styles ====================================//
+//================================================================================//
+
+//=================================//
+//==== START Resume Text Block ====//
+//=================================//
+
+* {
+    font-family: "Lato", "Open Sans", sans-serif;
+}
+
+html {
+
+  .page {
+
+    h2, h3, h4, h5, h6 {
+        font-weight: 900;
+    }
+
+    h2 {
+        font-size: 42px;
+    }
+
+    h3 {
+        font-size: 30px;
+    }
+
+    p, li, span,
+    .font-size-default {
+        font-size: 16px;
+    }
+
+    .font-size-small {
+        font-size: 14px;
+    }
+
+    .font-size-x-small {
+        font-size: 12px;
+    }
+
+    .font-size-large {
+        font-size: 18px;
+    }
+
+    .font-size-x-large {
+        font-size: 20px;
+    }
+
+    .descriptor, p.emphasis {
+        font-weight: 800;
+    }
+
+  }
+
+  // Purple blocky theme styles.
+  .theme-blocky.purple .page {
+
+  }
+}
+
+//===============================//
+//==== END Resume Text Block ====//
+//===============================//
diff --git a/resume_manager_core/templates/resume_manager/_display_recurse.html b/resume_manager_core/templates/resume_manager/_display_recurse.html
index 5b1458a36a8cb9a85a0d8c658c24d7c0f1b01328..b2dee2b89195c99ef05abd4a9e3c646d947251bd 100644
--- a/resume_manager_core/templates/resume_manager/_display_recurse.html
+++ b/resume_manager_core/templates/resume_manager/_display_recurse.html
@@ -9,17 +9,24 @@
 
   <div class="{{ data.section_css }}">
     {% if data.display_category == 'Name' %}
-      <h2>{{ content.name }}</h2>
+      <h2 class="padding-00">{{ content.name }}</h2>
     {% elif data.display_category == 'Profession' %}
-      <h2>{{ content.profession }}</h2>
+      <div class="flex flex-vertical flex-justify-space-evenly flex-align-end padding-00">
+        {% if content.profession2 %}
+          <p class="emphasis padding-05">{{ content.profession1 }}</p>
+          <p class="emphasis padding-05">{{ content.profession2 }}</p>
+        {% else %}
+          <p>{{ content.profession1 }}</p>
+        {% endif %}
+      </div>
     {% elif data.display_category == 'Contact' %}
-      <p>CONTACT INFO HERE</p>
+        {% include 'resume_manager/include/contact.html' with data=content.contact %}
     {% elif data.display_category == 'Education' %}
-      <p>EDUCATION HERE</p>
+      {% include 'resume_manager/include/education.html' with data=content.education %}
     {% elif data.display_category == 'Experience' %}
-      <p>EXPERIENCE HERE</p>
+      {% include 'resume_manager/include/experience.html' with data=content.experience %}
     {% elif data.display_category == 'Skills' %}
-      <p>SKILLS HERE</p>
+      {% include 'resume_manager/include/skills.html' with data=content.skills %}
     {% endif %}
 
 
diff --git a/resume_manager_core/templates/resume_manager/display.html b/resume_manager_core/templates/resume_manager/display.html
index 39869f7f95d9e8fccf97fe4e7d11fa13e2b9701b..aebf5969696786f97fc6ec74ec049efd96ced913 100644
--- a/resume_manager_core/templates/resume_manager/display.html
+++ b/resume_manager_core/templates/resume_manager/display.html
@@ -17,8 +17,8 @@
     {% endblock title %}
 
     {% block fonts_base %}
-      <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet" type="text/css">
-      <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet" type="text/css">
+      <link href="https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap" rel="stylesheet">
+      <link href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,300;1,400;1,500;1,600;1,700;1,800&display=swap" rel="stylesheet">
     {% endblock fonts_base %}
     {% block fonts_extra %}{% endblock fonts_extra %}
 
diff --git a/resume_manager_core/templates/resume_manager/include/contact.html b/resume_manager_core/templates/resume_manager/include/contact.html
new file mode 100644
index 0000000000000000000000000000000000000000..081a9b6af3849129bb95c8bbbbf0ca0601ed6849
--- /dev/null
+++ b/resume_manager_core/templates/resume_manager/include/contact.html
@@ -0,0 +1,40 @@
+
+<h3>Contact Information</h3>
+
+<div class="flex flex-vertical">
+
+  <p class="flex flex-horizontal flex-align-start">
+    <span class="descriptor font-size-small">Address:</span> {{ data.address }}
+  </p>
+  <p class="flex flex-horizontal flex-justify-space-between">
+    <span>
+      <span class="descriptor font-size-small">Phone:</span> {{ data.phone_number }}
+    </span>
+    <span>
+      <span class="descriptor font-size-small">Email:</span> {{ data.email }}
+    </span>
+  </p>
+
+  {% if data.website or data.linkedin %}
+    <p class="flex flex-horizontal flex-justify-space-between">
+      {% if data.website %}
+        <span><span class="descriptor font-size-small">Website:</span> {{ data.website }}</span>
+      {% endif %}
+      {% if data.linkedin %}
+        <span><span class="descriptor font-size-small">LinkedIn:</span> {{ data.linkedin }}</span>
+      {% endif %}
+    </p>
+  {% endif %}
+
+  {% if data.git or data.art_station %}
+    <p class="flex flex-horizontal flex-justify-space-between">
+      {% if data.git %}
+        <span><span class="descriptor font-size-small">Git:</span> {{ data.git }}</span>
+      {% endif %}
+      {% if data.art_station %}
+        <span><span class="descriptor font-size-small">ArtStation:</span> {{ data.art_station }}</span>
+      {% endif %}
+    </p>
+  {% endif %}
+
+</div>
diff --git a/resume_manager_core/templates/resume_manager/include/education.html b/resume_manager_core/templates/resume_manager/include/education.html
new file mode 100644
index 0000000000000000000000000000000000000000..94338ae866c3d06dbf17e7f100b3bbfd0144a415
--- /dev/null
+++ b/resume_manager_core/templates/resume_manager/include/education.html
@@ -0,0 +1,47 @@
+
+<h3>Education</h3>
+
+<div class="flex flex-vertical">
+
+  {% for education in data %}
+
+    <div class="flex flex-vertical subsection">
+
+      <p class="flex flex-horizontal flex-justify-space-between">
+        <span class="descriptor">{{ education.name }}</span>
+        <span class="descriptor">
+          {{ education.date_start|date:"M Y" }}
+          -
+          {% if education.date_end %}
+            {{ education.date_end|date:"M Y" }}
+          {% else %}
+            Present
+          {% endif %}
+        </span>
+      </p>
+
+      {% if education.degree or education.gpa or education.expected_graduation_date %}
+        <p class="flex flex-horizontal flex-justify-space-between">
+          {% if education.degree %}
+            <span>
+              <span class="descriptor font-size-small">Degree:</span> {{ education.degree }}
+            </span>
+          {% endif %}
+          {% if education.gpa %}
+            <span>
+              <span class="descriptor font-size-small">GPA:</span> {{ education.gpa }}
+            </span>
+          {% endif %}
+          {% if education.expected_graduation_date %}
+            <span>
+              <span class="descriptor font-size-small">Graduation Date:</span> {{ education.expected_graduation_date|date:"M Y" }}
+            </span>
+          {% endif %}
+        </p>
+      {% endif %}
+
+    </div>
+
+  {% endfor %}
+
+</div>
diff --git a/resume_manager_core/templates/resume_manager/include/experience.html b/resume_manager_core/templates/resume_manager/include/experience.html
new file mode 100644
index 0000000000000000000000000000000000000000..b44577016cce5528d7f4a8d3b9060df0a1da88e6
--- /dev/null
+++ b/resume_manager_core/templates/resume_manager/include/experience.html
@@ -0,0 +1,4 @@
+
+<h3>Experience</h3>
+
+<div></div>
diff --git a/resume_manager_core/templates/resume_manager/include/skills.html b/resume_manager_core/templates/resume_manager/include/skills.html
new file mode 100644
index 0000000000000000000000000000000000000000..e35e8dbbcfbae495936994814df50f767d07af2c
--- /dev/null
+++ b/resume_manager_core/templates/resume_manager/include/skills.html
@@ -0,0 +1,19 @@
+
+<h3 class="underline">Skills</h3>
+
+<div class="flex flex-align-start flex-wrap flex-ratio-100">
+  {% if data %}
+    {% for category in data %}
+      <div class="flex flex-vertical flex-justify-space-between flex-ratio-100">
+        <h4 class="padding-05">{{ category.category }}</h4>
+        <ul class="flex flex-vertical flex-align-start flex-ratio-100">
+          {% for skill in category.skills %}
+            <li class="padding-05"><p> - {{ skill }}</p></li>
+          {% endfor %}
+        </ul>
+      </div>
+    {% endfor %}
+  {% else %}
+    <p>No skills yet.</p>
+  {% endif %}
+</div>
diff --git a/resume_manager_core/views.py b/resume_manager_core/views.py
index 46672c1ac288dfab8540f04e52e144aab396c903..f6eedd88123f17936b770494444cd1ec917214f1 100644
--- a/resume_manager_core/views.py
+++ b/resume_manager_core/views.py
@@ -19,10 +19,11 @@ from .models import (
     Resume,
     ResumeSection,
     SectionCss,
-    # ResumeToSectionIntermediary,
-    # DataSectionHeader,
-    # DataKeyValue,
-    # DataItem,
+
+    ContactInfo,
+    EducationInstance,
+    ExperienceInstance,
+    SkillInstance,
 )
 
 
@@ -93,12 +94,19 @@ class DisplayResume(DetailView):
 
         # Get general resume data.
         user_name = '{0} {1}'.format(self.resume.user.first_name, self.resume.user.last_name)
-        user_profession = mark_safe(self.resume.profession)
+        user_profession = self.resume.profession.split('<br>')
+        if isinstance(user_profession, list) and len(user_profession) > 1:
+            user_profession_1 = user_profession.pop(0)
+            user_profession_2 = '<br>'.join(user_profession)
+        else:
+            user_profession_1 = '<br>'.join(user_profession)
+            user_profession_2 = None
+        user_address = self.resume.user.profile.address
 
         # Get all sections for resume.
         resume_sections = ResumeSection.objects.filter(resume=self.resume)
 
-        # Organize into parse-able data.
+        # Organize resume meta-data into parse-able structures.
         resume_data = []
         resume_pages = resume_sections.filter(parent_section=None)
         page_css_data = SectionCss.objects.filter(id=1)
@@ -138,14 +146,40 @@ class DisplayResume(DetailView):
                 'display_category': 'None',
             })
 
+        # Organize resume data into parse-able structures.
+        skills = SkillInstance.objects.filter(resume=self.resume)
+        skill_data = []
+        category_data = None
+        if len(skills) > 0:
+            current_skill_category = ''
+
+            for skill in 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 skill to category.
+                category_data['skills'].append(skill.name)
+            skill_data.append(category_data)
+
         # Pull together possible resume content.
         resume_content = {
             'name': user_name,
-            'profession': user_profession,
-            'contact': None,
-            'education': None,
-            'experience': None,
-            'skills': None,
+            'profession1': user_profession_1,
+            'profession2': user_profession_2,
+            'address': user_address,
+            'contact': ContactInfo.objects.get(resume=self.resume),
+            'education': EducationInstance.objects.filter(resume=self.resume) or None,
+            'experience': ExperienceInstance.objects.filter(resume=self.resume) or None,
+            'skills': skill_data,
         }
 
         # Update template context.