diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/ca/bcit/comp3760/assign2/Lab2.java b/src/ca/bcit/comp3760/assign2/Lab2.java
new file mode 100644
index 0000000..d564937
--- /dev/null
+++ b/src/ca/bcit/comp3760/assign2/Lab2.java
@@ -0,0 +1,114 @@
+package ca.bcit.comp3760.assign2;
+
+import java.util.ArrayList;
+
+/**
+ * Lab2 Generates palindromes of length N with
+ * the characters A, B, and C.
+ *
+ * @author Braeden Sowinski
+ * @version 1.0.0
+ */
+public class Lab2
+{
+ /**
+ * generate a list of all palindrome sequences of a given length N
+ * for the characters A, B, and C.
+ * @param n length of palindrome to generate
+ * @return ArrayList of strings containing all palindromes of length n
+ */
+ public ArrayList generatePalindromeSequences(final int n)
+ {
+ final ArrayList sequences;
+ sequences = new ArrayList<>();
+
+ if (n < 1)
+ {
+ /* we can assume n in greater than 1, but we'll
+ check just in case. */
+ return sequences;
+ }
+ else if (n <= 2)
+ {
+ sequences.add("A".repeat(n));
+ sequences.add("B".repeat(n));
+ sequences.add("C".repeat(n));
+ return sequences;
+ }
+
+ final ArrayList subsequences;
+ subsequences = generatePalindromeSequences(n - 2);
+
+ for (final char c : "ABC".toCharArray())
+ {
+ subsequences.forEach(sub -> sequences.add(c + sub + c));
+ }
+
+ return sequences;
+ }
+
+ /**
+ * morePalindromeSequences is a BONUS question that generates
+ * palindromes of length n, with c amount of characters. i.e.
+ * A, B, C, ... Cth character.
+ * @param n length palindrome
+ * @param nc number of characters in palindrome
+ */
+ public ArrayList morePalindromeSequences(final int n, final int nc)
+ {
+ final String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+ if (nc > characters.length())
+ {
+ return null;
+ }
+
+ final ArrayList sequences;
+ sequences = new ArrayList<>();
+
+ if (n < 1)
+ {
+ /* we can assume n in greater than 1, but we'll
+ check just in case. */
+ return sequences;
+ }
+ else if (n <= 2)
+ {
+ for (int i = 0; i < nc; i++)
+ {
+ sequences.add((characters.charAt(i) + "").repeat(n));
+ }
+ return sequences;
+ }
+
+ final ArrayList subsequences;
+ subsequences = generatePalindromeSequences(n - 2);
+
+ for (final char c : characters.substring(0, nc).toCharArray())
+ {
+ subsequences.forEach(sub -> sequences.add(c + sub + c));
+ }
+
+ return sequences;
+ }
+
+ /**
+ * main program entry for testing
+ * @param args unused
+ */
+ public static void main(final String[] args)
+ {
+ final Lab2 test;
+
+ test = new Lab2();
+
+ System.out.println("Generating ALL sequences of a given length:");
+ for (int i = 1; i <= 20; i++)
+ {
+ final ArrayList sequences;
+ sequences = test.generatePalindromeSequences(i);
+ System.out.printf("Length %d produces %d sequences\n", i, sequences.size());
+ //System.out.println(sequences);
+ }
+ }
+}