diff --git a/src/cse332/interfaces/misc/BString.java b/src/cse332/interfaces/misc/BString.java
index 460653ec23fa82813cf72f179ad159aef0cea3a6..07e860d0696b974c0fd26b74e52dcc7065f446f6 100644
--- a/src/cse332/interfaces/misc/BString.java
+++ b/src/cse332/interfaces/misc/BString.java
@@ -6,8 +6,7 @@ import java.util.Iterator;
 import cse332.interfaces.worklists.FixedSizeFIFOWorkList;
 import datastructures.worklists.CircularArrayFIFOQueue;
 
-public abstract class BString<Alphabet>
-        implements Iterable<Alphabet>, Comparable<BString<Alphabet>> {
+public abstract class BString<Alphabet extends Comparable<Alphabet> implements Iterable<Alphabet>, Comparable<BString<Alphabet>> {
     protected FixedSizeFIFOWorkList<Alphabet> str;
 
     public BString(Alphabet[] str) {
diff --git a/src/cse332/interfaces/trie/TrieMap.java b/src/cse332/interfaces/trie/TrieMap.java
index 008439659507023636f92dda20c761f3954789b0..1b32d6466b93f07c2574a77ba76d0b90e83d5c1d 100644
--- a/src/cse332/interfaces/trie/TrieMap.java
+++ b/src/cse332/interfaces/trie/TrieMap.java
@@ -30,7 +30,7 @@ import datastructures.worklists.ListFIFOQueue;
  *
  * @author Adam Blank
  */
-public abstract class TrieMap<A, K extends BString<A>, V> extends Dictionary<K, V> {
+public abstract class TrieMap<A extends Comparable<A>, K extends BString<A>, V> extends Dictionary<K, V> {
     protected TrieNode<?, ?> root;
 
     /**
diff --git a/src/cse332/interfaces/trie/TrieSet.java b/src/cse332/interfaces/trie/TrieSet.java
index 1600845aa68068f4500d20a7228e67a7665a565c..97d819e11aa52810d926fd0481f02e22923c49e0 100644
--- a/src/cse332/interfaces/trie/TrieSet.java
+++ b/src/cse332/interfaces/trie/TrieSet.java
@@ -3,7 +3,7 @@ package cse332.interfaces.trie;
 import cse332.interfaces.misc.BString;
 import cse332.interfaces.misc.Set;
 
-public abstract class TrieSet<A, E extends BString<A>> extends Set<E> {
+public abstract class TrieSet<A extends Comparable<A>, E extends BString<A>> extends Set<E> {
     protected TrieSet(TrieMap<A, E, Boolean> backingMap) {
         super(backingMap);
     }
diff --git a/src/p2/clients/NGramTester.java b/src/p2/clients/NGramTester.java
index 09dcff102ac10290321a68ac8dab926985abee20..33b035cd5a9eaa9294d6b8eb2b6e1dabfd431dba 100644
--- a/src/p2/clients/NGramTester.java
+++ b/src/p2/clients/NGramTester.java
@@ -12,8 +12,7 @@ import datastructures.dictionaries.HashTrieMap;
 import p2.wordsuggestor.WordSuggestor;
 
 public class NGramTester {
-    public static <A, K extends BString<A>, V> Supplier<Dictionary<K, V>> trieConstructor(
-            Class<K> clz) {
+    public static <A extends Comparable<A>, K extends BString<A>, V> Supplier<Dictionary<K, V>> trieConstructor(Class<K> clz) {
         return () -> new HashTrieMap<A, K, V>(clz);
     }