Added a few tests
Attempted some optimizations, but they suck. Also kinda realized I didn't pattern match nearly enough in this assignment