diff --git a/HelperFunctions.c b/HelperFunctions.c
new file mode 100644
index 0000000000000000000000000000000000000000..e36edb6399b2c241c0200e938924c9b06f79e004
--- /dev/null
+++ b/HelperFunctions.c
@@ -0,0 +1,218 @@
+/**
+ * Brandon Rodriguez
+ * CS 3240
+ * 09-19-17
+ */
+
+
+/**
+ * Helper functions to have consistent value copying and error handling.
+ *
+ *
+ * Copy Functions:
+ *      Copy functions use memcpy to copy data, and error.c's err_dump on
+ *      failure.
+ *
+ *      Copy functions require a "source" pointer of equivalent typing, and
+ *      return a pointer to copied item's location.
+ *
+ *
+ * String Functions:
+ *      String manipulator functions to make string handling easier.
+ *
+ *      String manipulator functions  require an "input" string and return
+ *      a modified copy of original string.
+ */
+
+
+#include <ctype.h>
+#include <string.h>
+#include "apue.h"
+
+
+// ************** //
+// Copy Functions //
+// ************** //
+
+/**
+ * Copies string from destination to source.
+ *
+ * Return: Copy of source string.
+ */
+char* copy_string(char *source_ptr) {
+    char *copy_ptr;
+    copy_ptr = calloc((strlen(source_ptr) + 1), sizeof(char));
+    if (copy_ptr != NULL) {
+        memcpy(copy_ptr, source_ptr, ((strlen(source_ptr) + 1)  * sizeof(char)));
+    } else {
+        err_dump("Could not allocate memory for string calloc.");
+    }
+    return copy_ptr;
+}
+
+
+/**
+ * Copies float from destination to source.
+ *
+ * Return: Copy of source int.
+ */
+int* copy_int(int *source_ptr) {
+    int *copy_ptr;
+    copy_ptr = calloc(1, (sizeof(int) + 1));
+    if (copy_ptr != NULL) {
+        memcpy(copy_ptr, source_ptr, sizeof(int));
+    } else {
+        err_dump("Could not allocate memory for int calloc.");
+    }
+    return copy_ptr;
+}
+
+
+/**
+ * Copies float from destination to source.
+ *
+ * Return: Copy of source float.
+ */
+float* copy_float(float *source_ptr) {
+    float *copy_ptr;
+    copy_ptr = calloc(1, (sizeof(float) + 1));
+    if (copy_ptr != NULL) {
+        memcpy(copy_ptr, source_ptr, sizeof(float));
+    } else {
+        err_dump("Could not allocate memory for float calloc.");
+    }
+    return copy_ptr;
+}
+
+
+/**
+ * Copies double from destination to source.
+ *
+ * Return: Copy of source double.
+ */
+double* copy_double(double *source_ptr) {
+    double *copy_ptr;
+    copy_ptr = calloc(1, (sizeof(double) + 1));
+    if (copy_ptr != NULL) {
+        memcpy(copy_ptr, source_ptr, sizeof(double));
+    } else {
+        err_dump("Could not allocate memory for double calloc.");
+    }
+    return copy_ptr;
+}
+
+
+// ***************************** //
+// String Manipulation Functions //
+// ***************************** //
+
+/**
+ * Converts provided string to lowercase.
+ *
+ * Return: Lowercase version of initial string.
+ */
+char* to_lower_case(char* input_string) {
+    int index = 0;
+    char* return_string = calloc((strlen(input_string) + 1), sizeof(char));
+    while (input_string[index]) {
+        return_string[index] = tolower(input_string[index]);
+        index++;
+    }
+    return return_string;
+}
+
+
+/**
+ * Converts provided string to uppercase.
+ *
+ * Return: Uppercase version of initial string.
+ */
+char* to_upper_case(char* input_string) {
+    int index = 0;
+    char* return_string = calloc((strlen(input_string) + 1), sizeof(char));
+    while (input_string[index]) {
+        return_string[index] = toupper(input_string[index]);
+        index++;
+    }
+    return return_string;
+}
+
+
+/**
+ * Converts provided string to:
+ *      First letter of each word is uppercase.
+ *      All other letters lowercase.
+ *
+ * Return: Converted version of initial string.
+ */
+char* first_letter_upper(char* input_string) {
+    int index = 0;
+    char* return_string = calloc((strlen(input_string) + 1), sizeof(char));
+    while (input_string[index]) {
+        if (index == 0) { // First char is always upper.
+            return_string[index] = toupper(input_string[index]);
+        } else { // Check all other chars. If space preceeds, then upper.
+            if (input_string[index - 1] == ' ') {
+                return_string[index] = toupper(input_string[index]);
+            } else { // No space found.
+                return_string[index] = tolower(input_string[index]);
+            }
+        }
+        index++;
+    }
+    return return_string;
+}
+
+
+/**
+ * Removes quotes from provided string.
+ *
+ * Return: Quote-less version of initial string.
+ */
+char* remove_quotes(char* input_string) {
+    size_t string_length = strlen(input_string);
+    int orig_index;
+    int replace_index = 0;
+
+    for (orig_index = 0; orig_index < string_length; orig_index++) {
+        if (input_string[orig_index] != '\"') {
+            input_string[replace_index] = input_string[orig_index];
+            replace_index++;
+        }
+    }
+
+    // Fill rest of values with null terminators.
+    while (replace_index < string_length) {
+        input_string[replace_index] = '\0';
+        replace_index++;
+    }
+
+    return input_string;
+}
+
+
+/**
+ * Removes newline character from string.
+ *
+ * Return: Newline-less version of initial string.
+ */
+char* remove_newline(char* input_string) {
+    size_t string_length = strlen(input_string);
+    int orig_index;
+    int replace_index = 0;
+
+    for (orig_index = 0; orig_index < string_length; orig_index++) {
+        if (input_string[orig_index] != '\n') {
+            input_string[replace_index] = input_string[orig_index];
+            replace_index++;
+        }
+    }
+
+    // Fill rest of values with null terminators.
+    while (replace_index < string_length) {
+        input_string[replace_index] = '\0';
+        replace_index++;
+    }
+
+    return input_string;
+}
diff --git a/HelperHeader.h b/HelperHeader.h
new file mode 100644
index 0000000000000000000000000000000000000000..3d52d6fd19a18455575bc72099d8ec5542ee4168
--- /dev/null
+++ b/HelperHeader.h
@@ -0,0 +1,24 @@
+/**
+ * Brandon Rodriguez
+ * CS 3240
+ * 09-19-17
+ */
+
+
+/**
+ * A personal header for helper-functions.
+ */
+
+
+// Function prototypes.
+
+char* copy_string(char* source_ptr);
+int* copy_int(int* source_ptr);
+float* copy_float(float* source_ptr);
+double* copy_double(double* source_ptr);
+
+char* to_lower_case(char* input_string);
+char* to_upper_case(char* input_string);
+char* first_letter_upper(char* input_string);
+char* remove_quotes(char* input_string);
+char* remove_newline(char* input_string);