From 8f5fa686f19190604029eeff5a18e64c4d29ed45 Mon Sep 17 00:00:00 2001
From: vcday <vcday@umich.edu>
Date: Tue, 13 Mar 2018 19:42:02 -0400
Subject: [PATCH] added stemmer and fixed parserE2E test

---
 .gitignore                                    |  19 +
 CMakeLists.txt                                |  14 +-
 cmake-build-debug/CMakeFiles/CMakeOutput.log  | 162 ++++
 cmake-build-debug/CMakeFiles/Makefile.cmake   |  78 +-
 cmake-build-debug/CMakeFiles/Makefile2        | 150 ++--
 .../CMakeFiles/TargetDirectories.txt          |   6 +-
 cmake-build-debug/CMakeFiles/clion-log.txt    |  15 -
 cmake-build-debug/CMakeFiles/progress.marks   |   2 +-
 cmake-build-debug/Makefile                    | 120 ++-
 parser/Parser.cpp                             |   5 -
 parser/Parser.h                               |   7 -
 parser/tests/parserTest.cpp                   |  30 +-
 shared/Document.cpp                           |   5 -
 util/Stemmer.h                                | 800 +++++++++++++++++-
 util/Tokenizer.cpp                            |  41 +
 util/Tokenizer.h                              |  33 +-
 util/stringProcessing.cpp                     |  43 +
 util/stringProcessing.h                       |  31 +-
 util/tests/stringProcessingTest.cpp           |  50 ++
 19 files changed, 1313 insertions(+), 298 deletions(-)
 create mode 100644 util/Tokenizer.cpp

diff --git a/.gitignore b/.gitignore
index 4f1171a..303db96 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,3 +12,22 @@ cmake_install.cmake
 eecs398_search.cbp
 main
 .gitignore
+cmake-build-debug/CMakeCache.txt
+cmake-build-debug/CMakeFiles/3.9.6/CMakeCCompiler.cmake
+cmake-build-debug/CMakeFiles/3.9.6/CMakeCXXCompiler.cmake
+cmake-build-debug/CMakeFiles/3.9.6/CMakeDetermineCompilerABI_C.bin
+cmake-build-debug/CMakeFiles/3.9.6/CMakeDetermineCompilerABI_CXX.bin
+cmake-build-debug/CMakeFiles/3.9.6/CMakeSystem.cmake
+cmake-build-debug/CMakeFiles/3.9.6/CompilerIdC/a.out
+cmake-build-debug/CMakeFiles/3.9.6/CompilerIdCXX/a.out
+cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake
+cmake-build-debug/CMakeFiles/CMakeOutput.log
+cmake-build-debug/CMakeFiles/Makefile.cmake
+cmake-build-debug/CMakeFiles/Makefile2
+cmake-build-debug/CMakeFiles/TargetDirectories.txt
+cmake-build-debug/CMakeFiles/clion-log.txt
+cmake-build-debug/CMakeFiles/cmake.check_cache
+cmake-build-debug/CMakeFiles/feature_tests.bin
+cmake-build-debug/CMakeFiles/feature_tests.c
+cmake-build-debug/CMakeFiles/feature_tests.cxx
+cmake-build-debug/CMakeFiles/progress.marks
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3d8922e..af64924 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,9 +3,6 @@ project(eecs398_search)
 
 set(CMAKE_CXX_STANDARD 11)
 
-
-
-
 add_executable(crawler-parser-test
         main.cpp
         shared/ProducerConsumerQueue.h
@@ -19,9 +16,7 @@ add_executable(crawler-parser-test
         crawler/LocalReader.h
         shared/Document.cpp
         parser/Parser.cpp
-        util/stringProcessing.cpp
-        )
-
+        util/stringProcessing.cpp)
 
 
 add_executable(StringProcessingTest
@@ -37,22 +32,21 @@ add_executable(StemmerTest
         util/Stemmer.h
         util/tests/stemmerTest.cpp)
 
-add_executable(ParserEndToEndTest
+add_executable(ParserTest
         parser/Parser.cpp
         shared/Document.cpp
         shared/url.h
         util/util.cpp
-        util/Tokenizer.h
+        util/Tokenizer.cpp
+        shared/ProducerConsumerQueue.h
         util/stringProcessing.cpp
         parser/tests/parserTest.cpp)
 
 
 add_executable(URLTEST shared/url.h shared/urlTest.cpp)
 
-
 add_executable(search-engine search.cpp query/Query.cpp)
 
 find_package(OpenSSL REQUIRED)
 
 target_link_libraries(crawler-parser-test OpenSSL::SSL pthread)
-
diff --git a/cmake-build-debug/CMakeFiles/CMakeOutput.log b/cmake-build-debug/CMakeFiles/CMakeOutput.log
index aa85149..c7415a4 100644
--- a/cmake-build-debug/CMakeFiles/CMakeOutput.log
+++ b/cmake-build-debug/CMakeFiles/CMakeOutput.log
@@ -28,6 +28,7 @@ The CXX compiler identification is AppleClang, found in "/Users/veronicaday/Desk
 Determining if the C compiler works passed with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_77a39/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_77a39.dir/build.make CMakeFiles/cmTC_77a39.dir/build
 Building C object CMakeFiles/cmTC_77a39.dir/testCCompiler.c.o
@@ -35,11 +36,21 @@ Building C object CMakeFiles/cmTC_77a39.dir/testCCompiler.c.o
 Linking C executable cmTC_77a39
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_77a39.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_77a39.dir/testCCompiler.c.o  -o cmTC_77a39 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_7ca95/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_7ca95.dir/build.make CMakeFiles/cmTC_7ca95.dir/build
+Building C object CMakeFiles/cmTC_7ca95.dir/testCCompiler.c.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -o CMakeFiles/cmTC_7ca95.dir/testCCompiler.c.o   -c /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c
+Linking C executable cmTC_7ca95
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7ca95.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_7ca95.dir/testCCompiler.c.o  -o cmTC_7ca95 
+>>>>>>> Stashed changes
 
 
 Detecting C compiler ABI info compiled with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_68c88/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_68c88.dir/build.make CMakeFiles/cmTC_68c88.dir/build
 Building C object CMakeFiles/cmTC_68c88.dir/CMakeCCompilerABI.c.o
@@ -47,11 +58,24 @@ Building C object CMakeFiles/cmTC_68c88.dir/CMakeCCompilerABI.c.o
 Linking C executable cmTC_68c88
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_68c88.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  -v -Wl,-v CMakeFiles/cmTC_68c88.dir/CMakeCCompilerABI.c.o  -o cmTC_68c88 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_b9e02/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_b9e02.dir/build.make CMakeFiles/cmTC_b9e02.dir/build
+Building C object CMakeFiles/cmTC_b9e02.dir/CMakeCCompilerABI.c.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -o CMakeFiles/cmTC_b9e02.dir/CMakeCCompilerABI.c.o   -c /Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCCompilerABI.c
+Linking C executable cmTC_b9e02
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b9e02.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  -v -Wl,-v CMakeFiles/cmTC_b9e02.dir/CMakeCCompilerABI.c.o  -o cmTC_b9e02 
+>>>>>>> Stashed changes
 Apple LLVM version 8.0.0 (clang-800.0.42.1)
 Target: x86_64-apple-darwin17.4.0
 Thread model: posix
 InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
+<<<<<<< Updated upstream
  "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.12.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -o cmTC_68c88 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_68c88.dir/CMakeCCompilerABI.c.o -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a
+=======
+ "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.12.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -o cmTC_b9e02 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_b9e02.dir/CMakeCCompilerABI.c.o -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a
+>>>>>>> Stashed changes
 @(#)PROGRAM:ld  PROJECT:ld64-274.1
 configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em (tvOS)
 Library search paths:
@@ -64,6 +88,7 @@ Parsed C implicit link information from above output:
   link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
   ignore line: [Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp]
   ignore line: []
+<<<<<<< Updated upstream
   ignore line: [Run Build Command:"/usr/bin/make" "cmTC_68c88/fast"]
   ignore line: [/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_68c88.dir/build.make CMakeFiles/cmTC_68c88.dir/build]
   ignore line: [Building C object CMakeFiles/cmTC_68c88.dir/CMakeCCompilerABI.c.o]
@@ -71,11 +96,24 @@ Parsed C implicit link information from above output:
   ignore line: [Linking C executable cmTC_68c88]
   ignore line: [/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_68c88.dir/link.txt --verbose=1]
   ignore line: [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  -v -Wl,-v CMakeFiles/cmTC_68c88.dir/CMakeCCompilerABI.c.o  -o cmTC_68c88 ]
+=======
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_b9e02/fast"]
+  ignore line: [/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_b9e02.dir/build.make CMakeFiles/cmTC_b9e02.dir/build]
+  ignore line: [Building C object CMakeFiles/cmTC_b9e02.dir/CMakeCCompilerABI.c.o]
+  ignore line: [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -o CMakeFiles/cmTC_b9e02.dir/CMakeCCompilerABI.c.o   -c /Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCCompilerABI.c]
+  ignore line: [Linking C executable cmTC_b9e02]
+  ignore line: [/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b9e02.dir/link.txt --verbose=1]
+  ignore line: [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  -v -Wl,-v CMakeFiles/cmTC_b9e02.dir/CMakeCCompilerABI.c.o  -o cmTC_b9e02 ]
+>>>>>>> Stashed changes
   ignore line: [Apple LLVM version 8.0.0 (clang-800.0.42.1)]
   ignore line: [Target: x86_64-apple-darwin17.4.0]
   ignore line: [Thread model: posix]
   ignore line: [InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin]
+<<<<<<< Updated upstream
   link line: [ "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.12.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -o cmTC_68c88 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_68c88.dir/CMakeCCompilerABI.c.o -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a]
+=======
+  link line: [ "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.12.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -o cmTC_b9e02 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_b9e02.dir/CMakeCCompilerABI.c.o -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a]
+>>>>>>> Stashed changes
     arg [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld] ==> ignore
     arg [-demangle] ==> ignore
     arg [-dynamic] ==> ignore
@@ -86,11 +124,19 @@ Parsed C implicit link information from above output:
     arg [-syslibroot] ==> ignore
     arg [/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk] ==> ignore
     arg [-o] ==> ignore
+<<<<<<< Updated upstream
     arg [cmTC_68c88] ==> ignore
     arg [-search_paths_first] ==> ignore
     arg [-headerpad_max_install_names] ==> ignore
     arg [-v] ==> ignore
     arg [CMakeFiles/cmTC_68c88.dir/CMakeCCompilerABI.c.o] ==> ignore
+=======
+    arg [cmTC_b9e02] ==> ignore
+    arg [-search_paths_first] ==> ignore
+    arg [-headerpad_max_install_names] ==> ignore
+    arg [-v] ==> ignore
+    arg [CMakeFiles/cmTC_b9e02.dir/CMakeCCompilerABI.c.o] ==> ignore
+>>>>>>> Stashed changes
     arg [-lSystem] ==> lib [System]
     arg [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a] ==> lib [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a]
   Library search paths: [;/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/lib]
@@ -109,6 +155,7 @@ Parsed C implicit link information from above output:
 Detecting C [-std=c11] compiler features compiled with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_7fcda/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_7fcda.dir/build.make CMakeFiles/cmTC_7fcda.dir/build
 Building C object CMakeFiles/cmTC_7fcda.dir/feature_tests.c.o
@@ -116,6 +163,15 @@ Building C object CMakeFiles/cmTC_7fcda.dir/feature_tests.c.o
 Linking C executable cmTC_7fcda
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7fcda.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_7fcda.dir/feature_tests.c.o  -o cmTC_7fcda 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_79cbf/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_79cbf.dir/build.make CMakeFiles/cmTC_79cbf.dir/build
+Building C object CMakeFiles/cmTC_79cbf.dir/feature_tests.c.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -std=c11 -o CMakeFiles/cmTC_79cbf.dir/feature_tests.c.o   -c /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/feature_tests.c
+Linking C executable cmTC_79cbf
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_79cbf.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_79cbf.dir/feature_tests.c.o  -o cmTC_79cbf 
+>>>>>>> Stashed changes
 
 
     Feature record: C_FEATURE:1c_function_prototypes
@@ -127,6 +183,7 @@ Linking C executable cmTC_7fcda
 Detecting C [-std=c99] compiler features compiled with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_0a2da/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_0a2da.dir/build.make CMakeFiles/cmTC_0a2da.dir/build
 Building C object CMakeFiles/cmTC_0a2da.dir/feature_tests.c.o
@@ -134,6 +191,15 @@ Building C object CMakeFiles/cmTC_0a2da.dir/feature_tests.c.o
 Linking C executable cmTC_0a2da
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0a2da.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_0a2da.dir/feature_tests.c.o  -o cmTC_0a2da 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_0aafb/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_0aafb.dir/build.make CMakeFiles/cmTC_0aafb.dir/build
+Building C object CMakeFiles/cmTC_0aafb.dir/feature_tests.c.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -std=c99 -o CMakeFiles/cmTC_0aafb.dir/feature_tests.c.o   -c /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/feature_tests.c
+Linking C executable cmTC_0aafb
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0aafb.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_0aafb.dir/feature_tests.c.o  -o cmTC_0aafb 
+>>>>>>> Stashed changes
 
 
     Feature record: C_FEATURE:1c_function_prototypes
@@ -145,6 +211,7 @@ Linking C executable cmTC_0a2da
 Detecting C [-std=c90] compiler features compiled with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_c7fe1/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_c7fe1.dir/build.make CMakeFiles/cmTC_c7fe1.dir/build
 Building C object CMakeFiles/cmTC_c7fe1.dir/feature_tests.c.o
@@ -152,6 +219,15 @@ Building C object CMakeFiles/cmTC_c7fe1.dir/feature_tests.c.o
 Linking C executable cmTC_c7fe1
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c7fe1.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_c7fe1.dir/feature_tests.c.o  -o cmTC_c7fe1 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_e585f/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_e585f.dir/build.make CMakeFiles/cmTC_e585f.dir/build
+Building C object CMakeFiles/cmTC_e585f.dir/feature_tests.c.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -std=c90 -o CMakeFiles/cmTC_e585f.dir/feature_tests.c.o   -c /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/feature_tests.c
+Linking C executable cmTC_e585f
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e585f.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc   -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_e585f.dir/feature_tests.c.o  -o cmTC_e585f 
+>>>>>>> Stashed changes
 
 
     Feature record: C_FEATURE:1c_function_prototypes
@@ -161,6 +237,7 @@ Linking C executable cmTC_c7fe1
 Determining if the CXX compiler works passed with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_3d2c3/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_3d2c3.dir/build.make CMakeFiles/cmTC_3d2c3.dir/build
 Building CXX object CMakeFiles/cmTC_3d2c3.dir/testCXXCompiler.cxx.o
@@ -168,11 +245,21 @@ Building CXX object CMakeFiles/cmTC_3d2c3.dir/testCXXCompiler.cxx.o
 Linking CXX executable cmTC_3d2c3
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3d2c3.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_3d2c3.dir/testCXXCompiler.cxx.o  -o cmTC_3d2c3 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_935cd/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_935cd.dir/build.make CMakeFiles/cmTC_935cd.dir/build
+Building CXX object CMakeFiles/cmTC_935cd.dir/testCXXCompiler.cxx.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -o CMakeFiles/cmTC_935cd.dir/testCXXCompiler.cxx.o -c /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
+Linking CXX executable cmTC_935cd
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_935cd.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_935cd.dir/testCXXCompiler.cxx.o  -o cmTC_935cd 
+>>>>>>> Stashed changes
 
 
 Detecting CXX compiler ABI info compiled with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_fbfb6/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_fbfb6.dir/build.make CMakeFiles/cmTC_fbfb6.dir/build
 Building CXX object CMakeFiles/cmTC_fbfb6.dir/CMakeCXXCompilerABI.cpp.o
@@ -180,11 +267,24 @@ Building CXX object CMakeFiles/cmTC_fbfb6.dir/CMakeCXXCompilerABI.cpp.o
 Linking CXX executable cmTC_fbfb6
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fbfb6.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  -v -Wl,-v CMakeFiles/cmTC_fbfb6.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_fbfb6 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_2675f/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_2675f.dir/build.make CMakeFiles/cmTC_2675f.dir/build
+Building CXX object CMakeFiles/cmTC_2675f.dir/CMakeCXXCompilerABI.cpp.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -o CMakeFiles/cmTC_2675f.dir/CMakeCXXCompilerABI.cpp.o -c /Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCXXCompilerABI.cpp
+Linking CXX executable cmTC_2675f
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2675f.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  -v -Wl,-v CMakeFiles/cmTC_2675f.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_2675f 
+>>>>>>> Stashed changes
 Apple LLVM version 8.0.0 (clang-800.0.42.1)
 Target: x86_64-apple-darwin17.4.0
 Thread model: posix
 InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
+<<<<<<< Updated upstream
  "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.12.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -o cmTC_fbfb6 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_fbfb6.dir/CMakeCXXCompilerABI.cpp.o -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a
+=======
+ "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.12.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -o cmTC_2675f -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_2675f.dir/CMakeCXXCompilerABI.cpp.o -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a
+>>>>>>> Stashed changes
 @(#)PROGRAM:ld  PROJECT:ld64-274.1
 configured to support archs: armv6 armv7 armv7s arm64 i386 x86_64 x86_64h armv6m armv7k armv7m armv7em (tvOS)
 Library search paths:
@@ -197,6 +297,7 @@ Parsed CXX implicit link information from above output:
   link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)]
   ignore line: [Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp]
   ignore line: []
+<<<<<<< Updated upstream
   ignore line: [Run Build Command:"/usr/bin/make" "cmTC_fbfb6/fast"]
   ignore line: [/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_fbfb6.dir/build.make CMakeFiles/cmTC_fbfb6.dir/build]
   ignore line: [Building CXX object CMakeFiles/cmTC_fbfb6.dir/CMakeCXXCompilerABI.cpp.o]
@@ -204,11 +305,24 @@ Parsed CXX implicit link information from above output:
   ignore line: [Linking CXX executable cmTC_fbfb6]
   ignore line: [/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fbfb6.dir/link.txt --verbose=1]
   ignore line: [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  -v -Wl,-v CMakeFiles/cmTC_fbfb6.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_fbfb6 ]
+=======
+  ignore line: [Run Build Command:"/usr/bin/make" "cmTC_2675f/fast"]
+  ignore line: [/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_2675f.dir/build.make CMakeFiles/cmTC_2675f.dir/build]
+  ignore line: [Building CXX object CMakeFiles/cmTC_2675f.dir/CMakeCXXCompilerABI.cpp.o]
+  ignore line: [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -o CMakeFiles/cmTC_2675f.dir/CMakeCXXCompilerABI.cpp.o -c /Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCXXCompilerABI.cpp]
+  ignore line: [Linking CXX executable cmTC_2675f]
+  ignore line: [/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2675f.dir/link.txt --verbose=1]
+  ignore line: [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names  -v -Wl,-v CMakeFiles/cmTC_2675f.dir/CMakeCXXCompilerABI.cpp.o  -o cmTC_2675f ]
+>>>>>>> Stashed changes
   ignore line: [Apple LLVM version 8.0.0 (clang-800.0.42.1)]
   ignore line: [Target: x86_64-apple-darwin17.4.0]
   ignore line: [Thread model: posix]
   ignore line: [InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin]
+<<<<<<< Updated upstream
   link line: [ "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.12.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -o cmTC_fbfb6 -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_fbfb6.dir/CMakeCXXCompilerABI.cpp.o -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a]
+=======
+  link line: [ "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.12.0 -syslibroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -o cmTC_2675f -search_paths_first -headerpad_max_install_names -v CMakeFiles/cmTC_2675f.dir/CMakeCXXCompilerABI.cpp.o -lc++ -lSystem /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a]
+>>>>>>> Stashed changes
     arg [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld] ==> ignore
     arg [-demangle] ==> ignore
     arg [-dynamic] ==> ignore
@@ -219,11 +333,19 @@ Parsed CXX implicit link information from above output:
     arg [-syslibroot] ==> ignore
     arg [/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk] ==> ignore
     arg [-o] ==> ignore
+<<<<<<< Updated upstream
     arg [cmTC_fbfb6] ==> ignore
     arg [-search_paths_first] ==> ignore
     arg [-headerpad_max_install_names] ==> ignore
     arg [-v] ==> ignore
     arg [CMakeFiles/cmTC_fbfb6.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+=======
+    arg [cmTC_2675f] ==> ignore
+    arg [-search_paths_first] ==> ignore
+    arg [-headerpad_max_install_names] ==> ignore
+    arg [-v] ==> ignore
+    arg [CMakeFiles/cmTC_2675f.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
+>>>>>>> Stashed changes
     arg [-lc++] ==> lib [c++]
     arg [-lSystem] ==> lib [System]
     arg [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a] ==> lib [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin/libclang_rt.osx.a]
@@ -243,6 +365,7 @@ Parsed CXX implicit link information from above output:
 Detecting CXX [-std=c++1z] compiler features compiled with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_7396e/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_7396e.dir/build.make CMakeFiles/cmTC_7396e.dir/build
 Building CXX object CMakeFiles/cmTC_7396e.dir/feature_tests.cxx.o
@@ -250,6 +373,15 @@ Building CXX object CMakeFiles/cmTC_7396e.dir/feature_tests.cxx.o
 Linking CXX executable cmTC_7396e
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7396e.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_7396e.dir/feature_tests.cxx.o  -o cmTC_7396e 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_895a4/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_895a4.dir/build.make CMakeFiles/cmTC_895a4.dir/build
+Building CXX object CMakeFiles/cmTC_895a4.dir/feature_tests.cxx.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -std=c++1z -o CMakeFiles/cmTC_895a4.dir/feature_tests.cxx.o -c /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_895a4
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_895a4.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_895a4.dir/feature_tests.cxx.o  -o cmTC_895a4 
+>>>>>>> Stashed changes
 
 
     Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
@@ -314,6 +446,7 @@ Linking CXX executable cmTC_7396e
 Detecting CXX [-std=c++14] compiler features compiled with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_2f430/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_2f430.dir/build.make CMakeFiles/cmTC_2f430.dir/build
 Building CXX object CMakeFiles/cmTC_2f430.dir/feature_tests.cxx.o
@@ -321,6 +454,15 @@ Building CXX object CMakeFiles/cmTC_2f430.dir/feature_tests.cxx.o
 Linking CXX executable cmTC_2f430
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2f430.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_2f430.dir/feature_tests.cxx.o  -o cmTC_2f430 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_072e7/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_072e7.dir/build.make CMakeFiles/cmTC_072e7.dir/build
+Building CXX object CMakeFiles/cmTC_072e7.dir/feature_tests.cxx.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -std=c++14 -o CMakeFiles/cmTC_072e7.dir/feature_tests.cxx.o -c /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_072e7
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_072e7.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_072e7.dir/feature_tests.cxx.o  -o cmTC_072e7 
+>>>>>>> Stashed changes
 
 
     Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers
@@ -385,6 +527,7 @@ Linking CXX executable cmTC_2f430
 Detecting CXX [-std=c++11] compiler features compiled with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_13355/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_13355.dir/build.make CMakeFiles/cmTC_13355.dir/build
 Building CXX object CMakeFiles/cmTC_13355.dir/feature_tests.cxx.o
@@ -392,6 +535,15 @@ Building CXX object CMakeFiles/cmTC_13355.dir/feature_tests.cxx.o
 Linking CXX executable cmTC_13355
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_13355.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_13355.dir/feature_tests.cxx.o  -o cmTC_13355 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_bc75e/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_bc75e.dir/build.make CMakeFiles/cmTC_bc75e.dir/build
+Building CXX object CMakeFiles/cmTC_bc75e.dir/feature_tests.cxx.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -std=c++11 -o CMakeFiles/cmTC_bc75e.dir/feature_tests.cxx.o -c /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_bc75e
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bc75e.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_bc75e.dir/feature_tests.cxx.o  -o cmTC_bc75e 
+>>>>>>> Stashed changes
 
 
     Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
@@ -456,6 +608,7 @@ Linking CXX executable cmTC_13355
 Detecting CXX [-std=c++98] compiler features compiled with the following output:
 Change Dir: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/CMakeTmp
 
+<<<<<<< Updated upstream
 Run Build Command:"/usr/bin/make" "cmTC_42370/fast"
 /Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_42370.dir/build.make CMakeFiles/cmTC_42370.dir/build
 Building CXX object CMakeFiles/cmTC_42370.dir/feature_tests.cxx.o
@@ -463,6 +616,15 @@ Building CXX object CMakeFiles/cmTC_42370.dir/feature_tests.cxx.o
 Linking CXX executable cmTC_42370
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_42370.dir/link.txt --verbose=1
 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_42370.dir/feature_tests.cxx.o  -o cmTC_42370 
+=======
+Run Build Command:"/usr/bin/make" "cmTC_c9dad/fast"
+/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/cmTC_c9dad.dir/build.make CMakeFiles/cmTC_c9dad.dir/build
+Building CXX object CMakeFiles/cmTC_c9dad.dir/feature_tests.cxx.o
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk   -std=c++98 -o CMakeFiles/cmTC_c9dad.dir/feature_tests.cxx.o -c /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/feature_tests.cxx
+Linking CXX executable cmTC_c9dad
+/Applications/CLion.app/Contents/bin/cmake/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c9dad.dir/link.txt --verbose=1
+/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names   CMakeFiles/cmTC_c9dad.dir/feature_tests.cxx.o  -o cmTC_c9dad 
+>>>>>>> Stashed changes
 
 
     Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers
diff --git a/cmake-build-debug/CMakeFiles/Makefile.cmake b/cmake-build-debug/CMakeFiles/Makefile.cmake
index 87a3203..2f8296d 100644
--- a/cmake-build-debug/CMakeFiles/Makefile.cmake
+++ b/cmake-build-debug/CMakeFiles/Makefile.cmake
@@ -7,94 +7,29 @@ set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
 # The top level Makefile was generated from the following files:
 set(CMAKE_MAKEFILE_DEPENDS
   "CMakeCache.txt"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCCompiler.cmake.in"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCCompilerABI.c"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCInformation.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCXXCompiler.cmake.in"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCXXCompilerABI.cpp"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCXXInformation.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCommonLanguageInclude.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeCompilerIdDetection.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeDetermineCCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeDetermineCXXCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeDetermineCompileFeatures.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeDetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeDetermineCompilerABI.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeDetermineCompilerId.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeDetermineSystem.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeFindBinUtils.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeFindCodeBlocks.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeGenericSystem.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeLanguageInformation.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeParseImplicitLinkInfo.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeSystem.cmake.in"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeSystemSpecificInformation.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeSystemSpecificInitialize.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeTestCCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeTestCXXCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeTestCompilerCommon.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/CMakeUnixFindMake.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/ADSP-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/AppleClang-C-FeatureTests.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/AppleClang-C.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/AppleClang-CXX-FeatureTests.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/AppleClang-CXX.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Borland-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Clang-CXX-TestableFeatures.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Clang-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Clang.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Cray-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/GHS-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/GNU.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/HP-C-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/IAR-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Intel-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/MIPSpro-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/MSVC-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/PGI-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/PathScale-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/SCO-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/TI-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/Watcom-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/XL-C-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/FindOpenSSL.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/FindPackageHandleStandardArgs.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/FindPackageMessage.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/FindPkgConfig.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Internal/FeatureTesting.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Platform/Darwin-AppleClang-C.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Platform/Darwin-AppleClang-CXX.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Platform/Darwin-Clang-C.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Platform/Darwin-Clang-CXX.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Platform/Darwin-Clang.cmake"
-  "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Platform/Darwin-Determine-CXX.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Platform/Darwin-Initialize.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Platform/Darwin.cmake"
   "/Applications/CLion.app/Contents/bin/cmake/share/cmake-3.9/Modules/Platform/UnixPaths.cmake"
@@ -103,8 +38,6 @@ set(CMAKE_MAKEFILE_DEPENDS
   "CMakeFiles/3.9.6/CMakeCCompiler.cmake"
   "CMakeFiles/3.9.6/CMakeCXXCompiler.cmake"
   "CMakeFiles/3.9.6/CMakeSystem.cmake"
-  "CMakeFiles/feature_tests.c"
-  "CMakeFiles/feature_tests.cxx"
   )
 
 # The corresponding makefile is:
@@ -115,21 +48,16 @@ set(CMAKE_MAKEFILE_OUTPUTS
 
 # Byproducts of CMake generate step:
 set(CMAKE_MAKEFILE_PRODUCTS
-  "CMakeFiles/3.9.6/CMakeSystem.cmake"
-  "CMakeFiles/3.9.6/CMakeCCompiler.cmake"
-  "CMakeFiles/3.9.6/CMakeCXXCompiler.cmake"
-  "CMakeFiles/3.9.6/CMakeCCompiler.cmake"
-  "CMakeFiles/3.9.6/CMakeCXXCompiler.cmake"
   "CMakeFiles/CMakeDirectoryInformation.cmake"
   )
 
 # Dependency information for all targets:
 set(CMAKE_DEPEND_INFO_FILES
-  "CMakeFiles/URLTEST.dir/DependInfo.cmake"
   "CMakeFiles/StemmerTest.dir/DependInfo.cmake"
-  "CMakeFiles/ParserEndToEndTest.dir/DependInfo.cmake"
-  "CMakeFiles/TokenizerTest.dir/DependInfo.cmake"
   "CMakeFiles/StringProcessingTest.dir/DependInfo.cmake"
+  "CMakeFiles/TokenizerTest.dir/DependInfo.cmake"
+  "CMakeFiles/URLTEST.dir/DependInfo.cmake"
+  "CMakeFiles/ParserTest.dir/DependInfo.cmake"
   "CMakeFiles/search-engine.dir/DependInfo.cmake"
   "CMakeFiles/crawler-parser-test.dir/DependInfo.cmake"
   )
diff --git a/cmake-build-debug/CMakeFiles/Makefile2 b/cmake-build-debug/CMakeFiles/Makefile2
index 66be724..1ec7d98 100644
--- a/cmake-build-debug/CMakeFiles/Makefile2
+++ b/cmake-build-debug/CMakeFiles/Makefile2
@@ -59,43 +59,6 @@ CMAKE_SOURCE_DIR = /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-s
 # The top-level build directory on which CMake was run.
 CMAKE_BINARY_DIR = /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug
 
-#=============================================================================
-# Target rules for target CMakeFiles/URLTEST.dir
-
-# All Build rule for target.
-CMakeFiles/URLTEST.dir/all:
-	$(MAKE) -f CMakeFiles/URLTEST.dir/build.make CMakeFiles/URLTEST.dir/depend
-	$(MAKE) -f CMakeFiles/URLTEST.dir/build.make CMakeFiles/URLTEST.dir/build
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=14,15 "Built target URLTEST"
-.PHONY : CMakeFiles/URLTEST.dir/all
-
-# Include target in all.
-all: CMakeFiles/URLTEST.dir/all
-
-.PHONY : all
-
-# Build rule for subdir invocation for target.
-CMakeFiles/URLTEST.dir/rule: cmake_check_build_system
-	$(CMAKE_COMMAND) -E cmake_progress_start /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles 2
-	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/URLTEST.dir/all
-	$(CMAKE_COMMAND) -E cmake_progress_start /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles 0
-.PHONY : CMakeFiles/URLTEST.dir/rule
-
-# Convenience name for target.
-URLTEST: CMakeFiles/URLTEST.dir/rule
-
-.PHONY : URLTEST
-
-# clean rule for target.
-CMakeFiles/URLTEST.dir/clean:
-	$(MAKE) -f CMakeFiles/URLTEST.dir/build.make CMakeFiles/URLTEST.dir/clean
-.PHONY : CMakeFiles/URLTEST.dir/clean
-
-# clean rule for target.
-clean: CMakeFiles/URLTEST.dir/clean
-
-.PHONY : clean
-
 #=============================================================================
 # Target rules for target CMakeFiles/StemmerTest.dir
 
@@ -103,7 +66,7 @@ clean: CMakeFiles/URLTEST.dir/clean
 CMakeFiles/StemmerTest.dir/all:
 	$(MAKE) -f CMakeFiles/StemmerTest.dir/build.make CMakeFiles/StemmerTest.dir/depend
 	$(MAKE) -f CMakeFiles/StemmerTest.dir/build.make CMakeFiles/StemmerTest.dir/build
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=7,8 "Built target StemmerTest"
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=8,9 "Built target StemmerTest"
 .PHONY : CMakeFiles/StemmerTest.dir/all
 
 # Include target in all.
@@ -134,39 +97,39 @@ clean: CMakeFiles/StemmerTest.dir/clean
 .PHONY : clean
 
 #=============================================================================
-# Target rules for target CMakeFiles/ParserEndToEndTest.dir
+# Target rules for target CMakeFiles/StringProcessingTest.dir
 
 # All Build rule for target.
-CMakeFiles/ParserEndToEndTest.dir/all:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/depend
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/build
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=1,2,3,4,5,6 "Built target ParserEndToEndTest"
-.PHONY : CMakeFiles/ParserEndToEndTest.dir/all
+CMakeFiles/StringProcessingTest.dir/all:
+	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/depend
+	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=10,11,12 "Built target StringProcessingTest"
+.PHONY : CMakeFiles/StringProcessingTest.dir/all
 
 # Include target in all.
-all: CMakeFiles/ParserEndToEndTest.dir/all
+all: CMakeFiles/StringProcessingTest.dir/all
 
 .PHONY : all
 
 # Build rule for subdir invocation for target.
-CMakeFiles/ParserEndToEndTest.dir/rule: cmake_check_build_system
-	$(CMAKE_COMMAND) -E cmake_progress_start /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles 6
-	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/ParserEndToEndTest.dir/all
+CMakeFiles/StringProcessingTest.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles 3
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/StringProcessingTest.dir/all
 	$(CMAKE_COMMAND) -E cmake_progress_start /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles 0
-.PHONY : CMakeFiles/ParserEndToEndTest.dir/rule
+.PHONY : CMakeFiles/StringProcessingTest.dir/rule
 
 # Convenience name for target.
-ParserEndToEndTest: CMakeFiles/ParserEndToEndTest.dir/rule
+StringProcessingTest: CMakeFiles/StringProcessingTest.dir/rule
 
-.PHONY : ParserEndToEndTest
+.PHONY : StringProcessingTest
 
 # clean rule for target.
-CMakeFiles/ParserEndToEndTest.dir/clean:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/clean
-.PHONY : CMakeFiles/ParserEndToEndTest.dir/clean
+CMakeFiles/StringProcessingTest.dir/clean:
+	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/clean
+.PHONY : CMakeFiles/StringProcessingTest.dir/clean
 
 # clean rule for target.
-clean: CMakeFiles/ParserEndToEndTest.dir/clean
+clean: CMakeFiles/StringProcessingTest.dir/clean
 
 .PHONY : clean
 
@@ -177,7 +140,7 @@ clean: CMakeFiles/ParserEndToEndTest.dir/clean
 CMakeFiles/TokenizerTest.dir/all:
 	$(MAKE) -f CMakeFiles/TokenizerTest.dir/build.make CMakeFiles/TokenizerTest.dir/depend
 	$(MAKE) -f CMakeFiles/TokenizerTest.dir/build.make CMakeFiles/TokenizerTest.dir/build
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=12,13 "Built target TokenizerTest"
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=13,14 "Built target TokenizerTest"
 .PHONY : CMakeFiles/TokenizerTest.dir/all
 
 # Include target in all.
@@ -208,39 +171,76 @@ clean: CMakeFiles/TokenizerTest.dir/clean
 .PHONY : clean
 
 #=============================================================================
-# Target rules for target CMakeFiles/StringProcessingTest.dir
+# Target rules for target CMakeFiles/URLTEST.dir
 
 # All Build rule for target.
-CMakeFiles/StringProcessingTest.dir/all:
-	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/depend
-	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/build
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=9,10,11 "Built target StringProcessingTest"
-.PHONY : CMakeFiles/StringProcessingTest.dir/all
+CMakeFiles/URLTEST.dir/all:
+	$(MAKE) -f CMakeFiles/URLTEST.dir/build.make CMakeFiles/URLTEST.dir/depend
+	$(MAKE) -f CMakeFiles/URLTEST.dir/build.make CMakeFiles/URLTEST.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=15,16 "Built target URLTEST"
+.PHONY : CMakeFiles/URLTEST.dir/all
 
 # Include target in all.
-all: CMakeFiles/StringProcessingTest.dir/all
+all: CMakeFiles/URLTEST.dir/all
 
 .PHONY : all
 
 # Build rule for subdir invocation for target.
-CMakeFiles/StringProcessingTest.dir/rule: cmake_check_build_system
-	$(CMAKE_COMMAND) -E cmake_progress_start /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles 3
-	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/StringProcessingTest.dir/all
+CMakeFiles/URLTEST.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles 2
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/URLTEST.dir/all
 	$(CMAKE_COMMAND) -E cmake_progress_start /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles 0
-.PHONY : CMakeFiles/StringProcessingTest.dir/rule
+.PHONY : CMakeFiles/URLTEST.dir/rule
 
 # Convenience name for target.
-StringProcessingTest: CMakeFiles/StringProcessingTest.dir/rule
+URLTEST: CMakeFiles/URLTEST.dir/rule
 
-.PHONY : StringProcessingTest
+.PHONY : URLTEST
 
 # clean rule for target.
-CMakeFiles/StringProcessingTest.dir/clean:
-	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/clean
-.PHONY : CMakeFiles/StringProcessingTest.dir/clean
+CMakeFiles/URLTEST.dir/clean:
+	$(MAKE) -f CMakeFiles/URLTEST.dir/build.make CMakeFiles/URLTEST.dir/clean
+.PHONY : CMakeFiles/URLTEST.dir/clean
 
 # clean rule for target.
-clean: CMakeFiles/StringProcessingTest.dir/clean
+clean: CMakeFiles/URLTEST.dir/clean
+
+.PHONY : clean
+
+#=============================================================================
+# Target rules for target CMakeFiles/ParserTest.dir
+
+# All Build rule for target.
+CMakeFiles/ParserTest.dir/all:
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/depend
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/build
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=1,2,3,4,5,6,7 "Built target ParserTest"
+.PHONY : CMakeFiles/ParserTest.dir/all
+
+# Include target in all.
+all: CMakeFiles/ParserTest.dir/all
+
+.PHONY : all
+
+# Build rule for subdir invocation for target.
+CMakeFiles/ParserTest.dir/rule: cmake_check_build_system
+	$(CMAKE_COMMAND) -E cmake_progress_start /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles 7
+	$(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/ParserTest.dir/all
+	$(CMAKE_COMMAND) -E cmake_progress_start /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles 0
+.PHONY : CMakeFiles/ParserTest.dir/rule
+
+# Convenience name for target.
+ParserTest: CMakeFiles/ParserTest.dir/rule
+
+.PHONY : ParserTest
+
+# clean rule for target.
+CMakeFiles/ParserTest.dir/clean:
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/clean
+.PHONY : CMakeFiles/ParserTest.dir/clean
+
+# clean rule for target.
+clean: CMakeFiles/ParserTest.dir/clean
 
 .PHONY : clean
 
@@ -251,7 +251,7 @@ clean: CMakeFiles/StringProcessingTest.dir/clean
 CMakeFiles/search-engine.dir/all:
 	$(MAKE) -f CMakeFiles/search-engine.dir/build.make CMakeFiles/search-engine.dir/depend
 	$(MAKE) -f CMakeFiles/search-engine.dir/build.make CMakeFiles/search-engine.dir/build
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=25,26,27 "Built target search-engine"
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=26,27,28 "Built target search-engine"
 .PHONY : CMakeFiles/search-engine.dir/all
 
 # Include target in all.
@@ -288,7 +288,7 @@ clean: CMakeFiles/search-engine.dir/clean
 CMakeFiles/crawler-parser-test.dir/all:
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/depend
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/build
-	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=16,17,18,19,20,21,22,23,24 "Built target crawler-parser-test"
+	@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles --progress-num=17,18,19,20,21,22,23,24,25 "Built target crawler-parser-test"
 .PHONY : CMakeFiles/crawler-parser-test.dir/all
 
 # Include target in all.
diff --git a/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/cmake-build-debug/CMakeFiles/TargetDirectories.txt
index 1a7737b..d00053c 100644
--- a/cmake-build-debug/CMakeFiles/TargetDirectories.txt
+++ b/cmake-build-debug/CMakeFiles/TargetDirectories.txt
@@ -1,9 +1,9 @@
 /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/edit_cache.dir
-/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/URLTEST.dir
 /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/rebuild_cache.dir
 /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/StemmerTest.dir
-/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/ParserEndToEndTest.dir
-/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/TokenizerTest.dir
 /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/StringProcessingTest.dir
+/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/TokenizerTest.dir
+/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/URLTEST.dir
+/Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/ParserTest.dir
 /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/search-engine.dir
 /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug/CMakeFiles/crawler-parser-test.dir
diff --git a/cmake-build-debug/CMakeFiles/clion-log.txt b/cmake-build-debug/CMakeFiles/clion-log.txt
index e5a4a62..f239e1b 100644
--- a/cmake-build-debug/CMakeFiles/clion-log.txt
+++ b/cmake-build-debug/CMakeFiles/clion-log.txt
@@ -1,19 +1,4 @@
 /Applications/CLion.app/Contents/bin/cmake/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search
--- The C compiler identification is AppleClang 8.0.0.8000042
--- The CXX compiler identification is AppleClang 8.0.0.8000042
--- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
--- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
--- Detecting C compiler ABI info
--- Detecting C compiler ABI info - done
--- Detecting C compile features
--- Detecting C compile features - done
--- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
--- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
--- Detecting CXX compiler ABI info
--- Detecting CXX compiler ABI info - done
--- Detecting CXX compile features
--- Detecting CXX compile features - done
--- Found OpenSSL: /usr/lib/libcrypto.dylib (found version "1.0.2m") 
 -- Configuring done
 -- Generating done
 -- Build files have been written to: /Users/veronicaday/Desktop/EECS398/eecs_398/project/eecs398-search/cmake-build-debug
diff --git a/cmake-build-debug/CMakeFiles/progress.marks b/cmake-build-debug/CMakeFiles/progress.marks
index f64f5d8..9902f17 100644
--- a/cmake-build-debug/CMakeFiles/progress.marks
+++ b/cmake-build-debug/CMakeFiles/progress.marks
@@ -1 +1 @@
-27
+28
diff --git a/cmake-build-debug/Makefile b/cmake-build-debug/Makefile
index e7b14c3..4f98c8b 100644
--- a/cmake-build-debug/Makefile
+++ b/cmake-build-debug/Makefile
@@ -110,19 +110,6 @@ depend:
 	$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
 .PHONY : depend
 
-#=============================================================================
-# Target rules for targets named URLTEST
-
-# Build rule for target.
-URLTEST: cmake_check_build_system
-	$(MAKE) -f CMakeFiles/Makefile2 URLTEST
-.PHONY : URLTEST
-
-# fast build rule for target.
-URLTEST/fast:
-	$(MAKE) -f CMakeFiles/URLTEST.dir/build.make CMakeFiles/URLTEST.dir/build
-.PHONY : URLTEST/fast
-
 #=============================================================================
 # Target rules for targets named StemmerTest
 
@@ -137,17 +124,17 @@ StemmerTest/fast:
 .PHONY : StemmerTest/fast
 
 #=============================================================================
-# Target rules for targets named ParserEndToEndTest
+# Target rules for targets named StringProcessingTest
 
 # Build rule for target.
-ParserEndToEndTest: cmake_check_build_system
-	$(MAKE) -f CMakeFiles/Makefile2 ParserEndToEndTest
-.PHONY : ParserEndToEndTest
+StringProcessingTest: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 StringProcessingTest
+.PHONY : StringProcessingTest
 
 # fast build rule for target.
-ParserEndToEndTest/fast:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/build
-.PHONY : ParserEndToEndTest/fast
+StringProcessingTest/fast:
+	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/build
+.PHONY : StringProcessingTest/fast
 
 #=============================================================================
 # Target rules for targets named TokenizerTest
@@ -163,17 +150,30 @@ TokenizerTest/fast:
 .PHONY : TokenizerTest/fast
 
 #=============================================================================
-# Target rules for targets named StringProcessingTest
+# Target rules for targets named URLTEST
 
 # Build rule for target.
-StringProcessingTest: cmake_check_build_system
-	$(MAKE) -f CMakeFiles/Makefile2 StringProcessingTest
-.PHONY : StringProcessingTest
+URLTEST: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 URLTEST
+.PHONY : URLTEST
 
 # fast build rule for target.
-StringProcessingTest/fast:
-	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/build
-.PHONY : StringProcessingTest/fast
+URLTEST/fast:
+	$(MAKE) -f CMakeFiles/URLTEST.dir/build.make CMakeFiles/URLTEST.dir/build
+.PHONY : URLTEST/fast
+
+#=============================================================================
+# Target rules for targets named ParserTest
+
+# Build rule for target.
+ParserTest: cmake_check_build_system
+	$(MAKE) -f CMakeFiles/Makefile2 ParserTest
+.PHONY : ParserTest
+
+# fast build rule for target.
+ParserTest/fast:
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/build
+.PHONY : ParserTest/fast
 
 #=============================================================================
 # Target rules for targets named search-engine
@@ -315,7 +315,7 @@ parser/Parser.o: parser/Parser.cpp.o
 
 # target to build an object file
 parser/Parser.cpp.o:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/parser/Parser.cpp.o
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/parser/Parser.cpp.o
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/parser/Parser.cpp.o
 .PHONY : parser/Parser.cpp.o
 
@@ -325,7 +325,7 @@ parser/Parser.i: parser/Parser.cpp.i
 
 # target to preprocess a source file
 parser/Parser.cpp.i:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/parser/Parser.cpp.i
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/parser/Parser.cpp.i
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/parser/Parser.cpp.i
 .PHONY : parser/Parser.cpp.i
 
@@ -335,7 +335,7 @@ parser/Parser.s: parser/Parser.cpp.s
 
 # target to generate assembly for a file
 parser/Parser.cpp.s:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/parser/Parser.cpp.s
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/parser/Parser.cpp.s
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/parser/Parser.cpp.s
 .PHONY : parser/Parser.cpp.s
 
@@ -345,7 +345,7 @@ parser/tests/parserTest.o: parser/tests/parserTest.cpp.o
 
 # target to build an object file
 parser/tests/parserTest.cpp.o:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/parser/tests/parserTest.cpp.o
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/parser/tests/parserTest.cpp.o
 .PHONY : parser/tests/parserTest.cpp.o
 
 parser/tests/parserTest.i: parser/tests/parserTest.cpp.i
@@ -354,7 +354,7 @@ parser/tests/parserTest.i: parser/tests/parserTest.cpp.i
 
 # target to preprocess a source file
 parser/tests/parserTest.cpp.i:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/parser/tests/parserTest.cpp.i
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/parser/tests/parserTest.cpp.i
 .PHONY : parser/tests/parserTest.cpp.i
 
 parser/tests/parserTest.s: parser/tests/parserTest.cpp.s
@@ -363,7 +363,7 @@ parser/tests/parserTest.s: parser/tests/parserTest.cpp.s
 
 # target to generate assembly for a file
 parser/tests/parserTest.cpp.s:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/parser/tests/parserTest.cpp.s
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/parser/tests/parserTest.cpp.s
 .PHONY : parser/tests/parserTest.cpp.s
 
 query/Query.o: query/Query.cpp.o
@@ -426,7 +426,7 @@ shared/Document.o: shared/Document.cpp.o
 
 # target to build an object file
 shared/Document.cpp.o:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/shared/Document.cpp.o
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/shared/Document.cpp.o
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/shared/Document.cpp.o
 .PHONY : shared/Document.cpp.o
 
@@ -436,7 +436,7 @@ shared/Document.i: shared/Document.cpp.i
 
 # target to preprocess a source file
 shared/Document.cpp.i:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/shared/Document.cpp.i
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/shared/Document.cpp.i
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/shared/Document.cpp.i
 .PHONY : shared/Document.cpp.i
 
@@ -446,7 +446,7 @@ shared/Document.s: shared/Document.cpp.s
 
 # target to generate assembly for a file
 shared/Document.cpp.s:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/shared/Document.cpp.s
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/shared/Document.cpp.s
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/shared/Document.cpp.s
 .PHONY : shared/Document.cpp.s
 
@@ -477,14 +477,41 @@ shared/urlTest.cpp.s:
 	$(MAKE) -f CMakeFiles/URLTEST.dir/build.make CMakeFiles/URLTEST.dir/shared/urlTest.cpp.s
 .PHONY : shared/urlTest.cpp.s
 
+util/Tokenizer.o: util/Tokenizer.cpp.o
+
+.PHONY : util/Tokenizer.o
+
+# target to build an object file
+util/Tokenizer.cpp.o:
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/util/Tokenizer.cpp.o
+.PHONY : util/Tokenizer.cpp.o
+
+util/Tokenizer.i: util/Tokenizer.cpp.i
+
+.PHONY : util/Tokenizer.i
+
+# target to preprocess a source file
+util/Tokenizer.cpp.i:
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/util/Tokenizer.cpp.i
+.PHONY : util/Tokenizer.cpp.i
+
+util/Tokenizer.s: util/Tokenizer.cpp.s
+
+.PHONY : util/Tokenizer.s
+
+# target to generate assembly for a file
+util/Tokenizer.cpp.s:
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/util/Tokenizer.cpp.s
+.PHONY : util/Tokenizer.cpp.s
+
 util/stringProcessing.o: util/stringProcessing.cpp.o
 
 .PHONY : util/stringProcessing.o
 
 # target to build an object file
 util/stringProcessing.cpp.o:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/util/stringProcessing.cpp.o
 	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/util/stringProcessing.cpp.o
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/util/stringProcessing.cpp.o
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/util/stringProcessing.cpp.o
 .PHONY : util/stringProcessing.cpp.o
 
@@ -494,8 +521,8 @@ util/stringProcessing.i: util/stringProcessing.cpp.i
 
 # target to preprocess a source file
 util/stringProcessing.cpp.i:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/util/stringProcessing.cpp.i
 	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/util/stringProcessing.cpp.i
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/util/stringProcessing.cpp.i
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/util/stringProcessing.cpp.i
 .PHONY : util/stringProcessing.cpp.i
 
@@ -505,8 +532,8 @@ util/stringProcessing.s: util/stringProcessing.cpp.s
 
 # target to generate assembly for a file
 util/stringProcessing.cpp.s:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/util/stringProcessing.cpp.s
 	$(MAKE) -f CMakeFiles/StringProcessingTest.dir/build.make CMakeFiles/StringProcessingTest.dir/util/stringProcessing.cpp.s
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/util/stringProcessing.cpp.s
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/util/stringProcessing.cpp.s
 .PHONY : util/stringProcessing.cpp.s
 
@@ -597,7 +624,7 @@ util/util.o: util/util.cpp.o
 
 # target to build an object file
 util/util.cpp.o:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/util/util.cpp.o
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/util/util.cpp.o
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/util/util.cpp.o
 .PHONY : util/util.cpp.o
 
@@ -607,7 +634,7 @@ util/util.i: util/util.cpp.i
 
 # target to preprocess a source file
 util/util.cpp.i:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/util/util.cpp.i
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/util/util.cpp.i
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/util/util.cpp.i
 .PHONY : util/util.cpp.i
 
@@ -617,7 +644,7 @@ util/util.s: util/util.cpp.s
 
 # target to generate assembly for a file
 util/util.cpp.s:
-	$(MAKE) -f CMakeFiles/ParserEndToEndTest.dir/build.make CMakeFiles/ParserEndToEndTest.dir/util/util.cpp.s
+	$(MAKE) -f CMakeFiles/ParserTest.dir/build.make CMakeFiles/ParserTest.dir/util/util.cpp.s
 	$(MAKE) -f CMakeFiles/crawler-parser-test.dir/build.make CMakeFiles/crawler-parser-test.dir/util/util.cpp.s
 .PHONY : util/util.cpp.s
 
@@ -628,12 +655,12 @@ help:
 	@echo "... clean"
 	@echo "... depend"
 	@echo "... edit_cache"
-	@echo "... URLTEST"
 	@echo "... rebuild_cache"
 	@echo "... StemmerTest"
-	@echo "... ParserEndToEndTest"
-	@echo "... TokenizerTest"
 	@echo "... StringProcessingTest"
+	@echo "... TokenizerTest"
+	@echo "... URLTEST"
+	@echo "... ParserTest"
 	@echo "... search-engine"
 	@echo "... crawler-parser-test"
 	@echo "... crawler/SocketReader.o"
@@ -666,6 +693,9 @@ help:
 	@echo "... shared/urlTest.o"
 	@echo "... shared/urlTest.i"
 	@echo "... shared/urlTest.s"
+	@echo "... util/Tokenizer.o"
+	@echo "... util/Tokenizer.i"
+	@echo "... util/Tokenizer.s"
 	@echo "... util/stringProcessing.o"
 	@echo "... util/stringProcessing.i"
 	@echo "... util/stringProcessing.s"
diff --git a/parser/Parser.cpp b/parser/Parser.cpp
index e412e36..2740f93 100644
--- a/parser/Parser.cpp
+++ b/parser/Parser.cpp
@@ -1,8 +1,3 @@
-//
-// Created by Jake Close on 3/5/18.
-//
-
-
 
 #include "Parser.h"
 
diff --git a/parser/Parser.h b/parser/Parser.h
index 17e5258..5fd995a 100644
--- a/parser/Parser.h
+++ b/parser/Parser.h
@@ -1,10 +1,3 @@
-//
-// Created by Veronica Day on 1/28/18.
-//
-
-// keep running count of offset, if stop word: don't incrememnt and remove stopword
-// tokenizer returns pointer to document dictionary, parser puts it on the indexer's queue
-//
 
 #pragma once
 #include <string>
diff --git a/parser/tests/parserTest.cpp b/parser/tests/parserTest.cpp
index 75c6cc8..4d990d0 100644
--- a/parser/tests/parserTest.cpp
+++ b/parser/tests/parserTest.cpp
@@ -1,6 +1,3 @@
-//
-// Created by anvia on 2/6/2018.
-//
 
 #include <string>
 #include <cassert>
@@ -52,23 +49,23 @@ void testComplex ( )
 	ProducerConsumerQueue < string >  urlFrontierTest;
 	ifstream file("../tests/cats.html");
 	string temp;
-	char docString[10240];
-	strcpy(docString, "<title>Joe the Cat</title>\n");
-
-	strcat(docString, "<a href=\"https://www.w3schools.com/html/\">Visit our HTML tutorial</a>\n");
-	while(std::getline(file, temp)) {
-		//strcat(docString, str(temp));
+	string docString = "<title>Joe the Cat</title>\n";
+	docString += "<a href=\"https://www.w3schools.com/html/\">Visit our HTML tutorial</a>\n";
+	while ( std::getline ( file, temp ) )
+		{
+		docString += temp;
 		}
+
 	ParsedUrl url = ParsedUrl("https://www.w3schools.com/tests/cats.html");
-	Document document ( url, docString );
+	char * writable = new char[docString.size( ) + 1];
+	std::copy(docString.begin( ), docString.end( ), writable);
+	writable[ docString.size( ) ] = '\0';
+
+	Document document ( url, writable );
 
 	Parser parser ( &urlFrontierTest );
 	auto dictionary = parser.execute ( &document );
 
-//	cout << dictionary->size () << endl;
-//	for (auto p : *dictionary)
-//		cout << p.first << endl;
-
 	assert ( dictionary != nullptr );
 	assert ( dictionary->size () == 3);
 
@@ -79,10 +76,7 @@ void testComplex ( )
 	assert ( dictionary->find ( "the" ) == dictionary->end () );
 	assert ( dictionary->find ( "of" ) == dictionary->end () );
 
-//	assert ( dictionary->at ( "cat" )[ 0 ] == 1 );
-//	assert ( dictionary->at ( "story" )[ 0 ] == 0 );
-//	cout << urlFrontierTest->Size () << endl;
-//	cout << urlFrontierTest->Pop () << endl;
 	delete dictionary;
+	delete[] writable;
 
 	}
\ No newline at end of file
diff --git a/shared/Document.cpp b/shared/Document.cpp
index 204dde3..54fef82 100644
--- a/shared/Document.cpp
+++ b/shared/Document.cpp
@@ -1,8 +1,3 @@
-//
-// Created by Jake Close on 3/5/18.
-//
-
-
 
 #include "Document.h"
 
diff --git a/util/Stemmer.h b/util/Stemmer.h
index 4acbf35..ef86e32 100644
--- a/util/Stemmer.h
+++ b/util/Stemmer.h
@@ -1,13 +1,805 @@
-//
-// Created by Veronica Day on 2/22/18.
-//
-
 
 #pragma once
 
+#include <string>
+#include "stringProcessing.h"
+
+/**
+ * Modeled after the Porter Stemmer algorithm
+ * http://snowball.tartarus.org/algorithms/porter/stemmer.html
+ */
 class Stemmer
 	{
 
+	Stemmer ( )
+		{ }
+
+	std::string stem ( std::string word )
+		{
+		}
+
+	/**
+	 * Number of consonant sequences
+	 *
+	 * <c><v>       -> 0
+	 * <c>vc<v>  	 -> 1
+	 * <c>vcvc<v>   -> 2
+	 * <c>vcvcvc<v> -> 3
+	 *
+	 * @param word
+	 * @return
+	 */
+	int measure ( std::string word )
+		{
+		int m = 0;
+		int begin = 0;
+		unsigned long end = word.size ( ) - 1;
+
+		while ( true )
+			{
+			if ( begin > end )
+				{
+				return m;
+				}
+			if ( isConsonant ( word.begin ( ) + begin, word.begin ( ) ) )
+				{
+				break;
+				}
+			begin += 1;
+			}
+		begin += 1;
+
+		while ( true )
+			{
+			while ( true )
+				{
+				if ( begin > end )
+					{
+					return m;
+					}
+				if ( isConsonant ( word.begin ( ) + begin, word.begin ( ) ) )
+					{
+					break;
+					}
+				begin += 1;
+				}
+			begin += 1;
+			m += 1;
+			while ( true )
+				{
+				if ( begin > end )
+					{
+					return m;
+					}
+				if ( isConsonant ( word.begin ( ) + begin, word.begin ( ) ) )
+					{
+					break;
+					}
+				begin += 1;
+				}
+			begin += 1;
+			}
+		}
+
+	/**
+	 * Check if a vowel is present in the stem
+	 *
+	 * @param wordBeg
+	 * @param wordEnd
+	 * @param word
+	 * @return
+	 */
+	bool isVowelPresent ( string::iterator wordBeg, string::iterator wordEnd, string word )
+		{
+		while ( wordBeg != wordEnd )
+			{
+			if ( !isConsonant ( wordBeg, word.begin ( ) ) )
+				{
+				return true;
+				}
+			}
+		return false;
+		}
+
+	/**
+	 * Return true if the wordIt points to a consonant
+	 *
+	 * @param wordIt
+	 * @param wordBegin
+	 * @return
+	 */
+	bool isConsonant ( string::iterator wordIt, string::iterator wordBegin )
+		{
+		if ( *wordIt == 'a' || *wordIt == 'e' || *wordIt == 'i' || *wordIt == 'u' )
+			{
+			return false;
+			}
+		if ( *wordIt == 'y' )
+			{
+			if ( wordIt == wordBegin )
+				{
+				return true;
+				}
+			else
+				{
+				return ( !isConsonant ( wordIt - 1, wordBegin ) );
+				}
+			}
+		return true;
+		}
+
+	/**
+	 * Returns true if should add 'e' to end
+	 *
+	 * @param word
+	 * @return
+	 */
+	bool addE ( string word )
+		{
+		// AT -> ATE
+		// BL -> BLE
+		// IZ -> IZE
+		unsigned long end = word.size ( ) - 1;
+		auto endPtr = word.begin ( ) + end;
+		auto substrAT = findPrev ( "at", endPtr );
+		auto substrBL = findPrev ( "bl", endPtr );
+		auto substrIZ = findPrev ( "iz", endPtr );
+
+		if ( *substrAT != '\0' || *substrBL != '\0' || *substrIZ != '\0' )
+			{
+			return true;
+			}
+		else
+			{
+			return false;
+			}
+		}
+
+	/**
+	 * Returns true if word ends in double constant
+	 * Not LL, SS, ZZ
+	 * @param word
+	 * @return
+	 */
+	bool doubleCon ( string word )
+		{
+		unsigned long end = word.size ( ) - 1;
+		auto endPtr = word.begin ( ) + end;
+
+		if ( word.size ( ) > 2 && *endPtr == *( endPtr - 1 ) )
+			{
+			if ( *endPtr == 'l' || *endPtr == 's' || *endPtr == 'z' )
+				{
+				return false;
+				}
+			else
+				{
+				return true;
+				}
+			}
+		return false;
+		}
+
+	/**
+	 * Returns true if a word ends in a
+	 * Consonant, Vowel, Consonant pattern
+	 * Except when second C is W, X, or Y
+	 *
+	 * @param word
+	 * @return
+	 */
+	bool endCVC ( std::string word )
+		{
+		unsigned long end = word.size ( ) - 1;
+		auto endPtr = word.begin ( ) + end;
+
+		if ( word.size ( ) > 2 )
+			{
+			// the stem ends cvc
+			if ( isConsonant ( endPtr, word.begin ( ) ) && !isConsonant ( endPtr - 1, word.begin ( ) ) &&
+			     isConsonant ( endPtr - 2, word.begin ( ) ) )
+				{
+				// the second c is not W, X or Y
+				if ( *( endPtr - 1 ) != 'w' && *( endPtr - 1 ) != 'x' && *( endPtr - 1 ) != 'y' )
+					{
+					return true;
+					}
+				}
+			}
+		return false;
+
+		}
+
+	/**
+	 * Stem plural words
+	 *
+	 * @param word
+	 * @return
+	 */
+	std::string step_1a ( std::string word )
+		{
+		unsigned long end = word.size ( ) - 1;
+		auto endPtr = word.begin ( ) + end;
+
+		// check S at end
+		if ( word.at ( end ) == 's' )
+			{
+			string wordStem ( word.begin ( ), word.end ( ) );
+
+			auto substrSSES = findPrev ( "sses", endPtr );
+			auto substrIES = findPrev ( "ies", endPtr );
+			auto substrSS = findPrev ( "ss", endPtr );
+			auto substrS = findPrev ( "s", endPtr );
+			// sses -> ss
+			// caresses -> caress
+			if ( *substrSSES != '\0' )
+				{
+				string wordStem ( word.begin ( ), substrSSES + 1 );
+				}
+				// ies -> i
+				// ponies -> poni
+			else if ( *substrIES != '\0' )
+				{
+				string wordStem ( word.begin ( ), substrIES + 1 );
+				}
+				// ss -> ss
+				// caress -> caress
+			else if ( *substrSS != '\0' )
+				{
+				string wordStem ( word.begin ( ), word.end ( ) );
+				}
+				// s ->
+				// cats -> cat
+			else if ( *substrS != '\0' )
+				{
+				string wordStem ( word.begin ( ), substrS + 1 );
+				}
+			else
+				{
+				string wordStem ( word.begin ( ), word.end ( ) );
+				}
+
+			return wordStem;
+			}
+		return word;
+		}
+
+	/**
+	 * Stem ED and ING
+	 *
+	 * @param word
+	 * @return
+	 */
+	std::string step_1b ( std::string word )
+		{
+		unsigned long end = word.size ( ) - 1;
+		auto endPtr = word.begin ( ) + end;
+
+		if ( measure ( word ) > 0 )
+			{
+			string wordStem ( word.begin ( ), word.end ( ) );
+
+			auto substrEED = findPrev ( "eed", endPtr );
+			auto substrED = findPrev ( "ed", endPtr );
+			auto substrING = findPrev ( "ing", endPtr );
+
+			// check EED at end and m > 0
+			// feed -> feed
+			// agreed -> agree
+			if ( *substrEED != '\0' )
+				{
+				string wordStem ( word.begin ( ), substrEED + 1 );
+				}
+				// check ED at end and preceeded by substr with vowel
+				// plastered -> plaster
+				// bled -> bled
+			else if ( *substrED != '\0' && isVowelPresent ( word.begin ( ), substrED, word ) )
+				{
+
+				string wordStem ( word.begin ( ), substrED + 1 );
+				if ( addE ( wordStem ) )
+					{
+					wordStem += 'e';
+					}
+				else if ( doubleCon ( wordStem ) )
+					{
+					wordStem = wordStem.substr ( 0, wordStem.size ( ) - 1 );
+					}
+				else if ( measure ( wordStem ) > 1 && endCVC ( wordStem ) )
+					{
+					wordStem += 'e';
+					}
+				}
+				// check ING at end and proceeded by substr with vowel
+				// motoring -> motor
+				// sing -> sing
+			else if ( *substrING != '\0' && isVowelPresent ( word.begin ( ), substrING, word ) )
+				{
+				string wordStem ( word.begin ( ), substrING + 1 );
+				if ( addE ( wordStem ) )
+					{
+					wordStem += 'e';
+					}
+				}
+
+			return wordStem;
+			}
+		return word;
+
+		}
+
+	/**
+	 * Checks for Y -> I
+	 * @param word
+	 * @return
+	 */
+	string step1c ( string word )
+		{
+		unsigned long end = word.size ( ) - 1;
+		auto endPtr = word.begin ( ) + end;
+
+		// Y -> I
+		// happy -> happi
+		// sky -> sky
+		if ( *endPtr == 'y' )
+			{
+			if ( isVowelPresent ( word.begin ( ), endPtr, word ) )
+				{
+				word = word.substr ( 0, word.size ( ) - 1 );
+				word += 'i';
+				}
+			}
+		return word;
+		}
+
+	/**
+	 * Step 2
+	 * @param word
+	 * @return
+	 */
+	string step2 ( std::string word )
+		{
+
+		if ( measure ( word ) == 0 )
+			{
+			return word;
+			}
+
+		unsigned long end = word.size ( ) - 1;
+		auto endPtr = word.begin ( ) + end;
+		string wordStem ( word.begin ( ), word.end ( ) );
+
+		auto substrATIONAL = findPrev ( "ational", endPtr );
+		auto substrTIONAL = findPrev ( "tional", endPtr );
+		auto substrENCI = findPrev ( "enci", endPtr );
+		auto substrANCI = findPrev ( "anci", endPtr );
+		auto substrIZER = findPrev ( "izer", endPtr );
+		auto substrABLI = findPrev ( "abli", endPtr );
+		auto substrALLI = findPrev ( "alli", endPtr );
+		auto substrENTLI = findPrev ( "entli", endPtr );
+		auto substrELI = findPrev ( "eli", endPtr );
+		auto substrOUSLI = findPrev ( "ousli", endPtr );
+		auto substrIZATION = findPrev ( "ization", endPtr );
+		auto substrATION = findPrev ( "ation", endPtr );
+		auto substrATOR = findPrev ( "ator", endPtr );
+		auto substrALISM = findPrev ( "alism", endPtr );
+		auto substrIVENESS = findPrev ( "iveness", endPtr );
+		auto substrFULNESS = findPrev ( "fulness", endPtr );
+		auto substrOUSNESS = findPrev ( "ousness", endPtr );
+		auto substrALITI = findPrev ( "aliti", endPtr );
+		auto substrIVITI = findPrev ( "iviti", endPtr );
+		auto substrBILITI = findPrev ( "biliti", endPtr );
+
+		// ATIONAL -> ATE
+		// relational -> relate
+		if ( *substrATIONAL != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrATIONAL + 1 );
+			wordStem + 'ate';
+			}
+			// TIONAL -> TION
+			// conditional -> condition
+			// rational -> rational
+		else if ( *substrTIONAL != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrTIONAL + 1 );
+			wordStem += 'tion';
+			}
+			// ENCI -> ENCE
+			// valenci -> valence
+		else if ( *substrENCI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrENCI + 1 );
+			wordStem += 'ence';
+			}
+			// ANCI -> ANCE
+			// hesitanci ->	hesitance
+		else if ( *substrANCI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrANCI + 1 );
+			wordStem += 'ance';
+			}
+			// IZER -> IZE
+			// digitizer -> digitize
+		else if ( *substrIZER != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrIZER + 1 );
+			wordStem += 'ize';
+			}
+			// ABLI -> ABLE
+			// conformabli -> comformable
+		else if ( *substrABLI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrABLI + 1 );
+			wordStem += 'able';
+			}
+			// ALLI -> AL
+			// radicalli -> radical
+		else if ( *substrALLI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrALLI + 1 );
+			wordStem += 'al';
+			}
+			// ENTLI -> ENT
+			// differentli -> different
+		else if ( *substrENTLI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrENTLI + 1 );
+			wordStem += 'ent';
+			}
+			// ELI -> E
+			// vileli -> vile
+		else if ( *substrELI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrELI + 1 );
+			wordStem += 'e';
+			}
+			// OUSLI -> OUS
+			// analogousli	->	analogous
+		else if ( *substrOUSLI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrOUSLI + 1 );
+			wordStem += 'ous';
+			}
+			// IZATION -> IZE
+			// vietnamization	->	vietnamize
+		else if ( *substrIZATION != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrIZATION + 1 );
+			wordStem += 'ize';
+			}
+			// ATION -> ATE
+			// predication	->	predicate
+		else if ( *substrATION != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrATION + 1 );
+			wordStem += 'ate';
+			}
+			// ATOR -> ATE
+			// predication	->	predicate
+		else if ( *substrATOR != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrATOR + 1 );
+			wordStem += 'ate';
+			}
+			// ALISM -> AL
+			// feudalism -> feudal
+		else if ( *substrALISM != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrALISM + 1 );
+			wordStem += 'al';
+			}
+			// IVENESS -> IVE
+			// decisivenss	->	decisive
+		else if ( *substrIVENESS != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrIVENESS + 1 );
+			wordStem += 'ive';
+			}
+			// FULNESS -> FUL
+			// hopefulness	->	hopeful
+		else if ( *substrFULNESS != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrFULNESS + 1 );
+			wordStem += 'ful';
+			}
+			// OUSNESS -> OUS
+			// callousness	->	callous
+		else if ( *substrOUSNESS != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrOUSNESS + 1 );
+			wordStem += 'ous';
+			}
+			// ALITI -> AL
+			// formalit	->	callous
+		else if ( *substrOUSNESS != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrOUSNESS + 1 );
+			wordStem += 'al';
+			}
+			// IVITI -> IVE
+			// sensitiviti	->	sensitive
+		else if ( *substrIVITI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrIVITI + 1 );
+			wordStem += 'ive';
+			}
+			// BILITI -> BLE
+			// sensibiliti	->	sensible
+		else if ( *substrBILITI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrBILITI + 1 );
+			wordStem += 'ble';
+			}
+
+		return wordStem;
+		}
+
+	/**
+	 * Step 3
+	 *
+	 * @param word
+	 * @return
+	 */
+	std::string step3 ( std:: string word )
+		{
+
+		if ( measure ( word ) == 0 )
+			{
+			return word;
+			}
+
+		unsigned long end = word.size ( ) - 1;
+		auto endPtr = word.begin ( ) + end;
+		string wordStem ( word.begin ( ), word.end ( ) );
+
+		auto substrICATE = findPrev ( "icate", endPtr );
+		auto substrATIVE = findPrev ( "ative", endPtr );
+		auto substrALIZE = findPrev ( "alize", endPtr );
+		auto substrICITI = findPrev ( "iciti", endPtr );
+		auto substrICAL	 = findPrev ( "ical", endPtr );
+		auto substrFUL		 = findPrev ( "ful", endPtr );
+		auto substrNESS	 = findPrev ( "ness", endPtr );
+
+		// ICATE -> IC
+		// triplicate -> triplic
+		if ( *substrICATE != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrICATE + 1 );
+			wordStem + 'ic';
+			}
+			// ATIVE ->
+			// formative -> form
+		else if ( *substrATIVE != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrATIVE + 1 );
+			}
+			// ALIZE -> AL
+			// formalize -> formal
+		else if ( *substrALIZE != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrALIZE + 1 );
+			wordStem += 'al';
+			}
+			// ICITI -> IC
+			// electriciti ->	electric
+		else if ( *substrICITI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrICITI + 1 );
+			wordStem += 'ic';
+			}
+			// ICAL -> IC
+			// electrical -> electric
+		else if ( *substrICAL != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrICAL + 1 );
+			wordStem += 'ic';
+			}
+			// FUL ->
+			// hopeful -> hope
+		else if ( *substrFUL != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrFUL + 1 );
+			}
+			// NESS ->
+			// goodness -> good
+		else if ( *substrNESS != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrNESS + 1 );
+			}
+
+		return wordStem;
+		}
+
+	/**
+	 * Step 4
+	 *
+	 * @param word
+	 * @return
+	 */
+	std::string step4( std::string word )
+		{
+		if ( measure ( word ) <= 1 )
+			{
+			return word;
+			}
+
+		unsigned long end = word.size ( ) - 1;
+		auto endPtr = word.begin ( ) + end;
+		string wordStem ( word.begin ( ), word.end ( ) );
+
+
+		auto substrAL = findPrev ( "al", endPtr );
+		auto substrANCE = findPrev ( "ance", endPtr );
+		auto substrENCE = findPrev ( "ence", endPtr );
+		auto substrER = findPrev ( "er", endPtr );
+		auto substrIC = findPrev ( "ic", endPtr );
+		auto substrABLE = findPrev ( "able", endPtr );
+		auto substrIBLE = findPrev ( "ible", endPtr );
+		auto substrANT = findPrev ( "ant", endPtr );
+		auto substrEMENT = findPrev ( "ement", endPtr );
+		auto substrMENT = findPrev ( "ment", endPtr );
+		auto substrENT = findPrev ( "ent", endPtr );
+		auto substrTION = findPrev ( "tion", endPtr );
+		auto substrOU = findPrev ( "ou", endPtr );
+		auto substrISM	= findPrev ( "ism", endPtr );
+		auto substrATE = findPrev ( "ate", endPtr );
+		auto substrITI = findPrev ( "iti", endPtr );
+		auto substrOUS = findPrev ( "ous", endPtr );
+		auto substrIVE = findPrev ( "ive", endPtr );
+		auto substrIZE = findPrev ( "ize", endPtr );
+
+		// AL ->
+		// revival -> reviv
+		if ( *substrAL != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrAL + 1 );
+			}
+			// ANCE ->
+			// allowance -> allow
+		else if ( *substrANCE != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrANCE + 1 );
+			}
+			// ENCE ->
+			// inference -> infer
+		else if ( *substrENCE != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrENCE + 1 );
+			}
+			// ER ->
+			// airliner ->	airlin
+		else if ( *substrER != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrER + 1 );
+			}
+			// IC ->
+			// gyroscopic -> gyroscope
+		else if ( *substrIC != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrIC + 1 );
+			}
+			// ABLE ->
+			// adjustable -> adjust
+		else if ( *substrABLE != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrABLE + 1 );
+			}
+			// IBLE ->
+			// goodness -> good
+		else if ( *substrIBLE != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrIBLE + 1 );
+			}
+			// ANT ->
+			// irritant -> irrit
+		else if ( *substrANT != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrANT + 1 );
+			}
+			// EMENT ->
+			// replacement -> replace
+		else if ( *substrEMENT != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrEMENT + 1 );
+			}
+			// MENT ->
+			// adjustment -> adjust
+		else if ( *substrMENT != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrMENT + 1 );
+			}
+			// ENT ->
+			// dependent -> depend
+		else if ( *substrENT != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrENT + 1 );
+			}
+			// TION ->
+			// stem must end in 't' or 's'
+			// adoption -> adopt
+		else if ( *substrTION != '\0' && ( *( substrTION - 1) == 's' || *( substrTION - 1) == 't' ) )
+			{
+			string wordStem ( word.begin ( ), substrTION + 1 );
+			}
+			// OU ->
+			// homologou -> homolog
+		else if ( *substrOU != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrOU + 1 );
+			}
+			// ISM ->
+			// communism -> commun
+		else if ( *substrISM != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrISM + 1 );
+			}
+			// ATE ->
+			// activate -> activ
+		else if ( *substrATE != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrATE + 1 );
+			}
+			// ITI ->
+			// angulariti -> angular
+		else if ( *substrITI != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrITI + 1 );
+			}
+			// OUS ->
+			// homologous -> homolog
+		else if ( *substrOUS != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrOUS + 1 );
+			}
+			// IVE ->
+			// effective -> effect
+		else if ( *substrIVE != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrIVE + 1 );
+			}
+			// IZE ->
+			// bowdlerize -> bowdler
+		else if ( *substrIZE != '\0' )
+			{
+			string wordStem ( word.begin ( ), substrIZE + 1 );
+			}
+		return wordStem;
+
+		}
+
+	std::string step5a ( std::string word )
+		{
+		unsigned long end = word.size ( ) - 1;
+		auto endPtr = word.begin ( ) + end;
+
+		// E ->
+		// probabte -> probat
+		if ( measure ( word ) > 1 && *endPtr == 'e' )
+			{
+			word = word.substr ( 0, word.size ( ) - 1 );
+			return word;
+			}
+		// E ->
+		// cease -> cease
+		if ( measure ( word ) == 1 && !endCVC ( word ) && *endPtr == 'e')
+			{
+			word = word.substr ( 0, word.size ( ) - 1 );
+			return word;
+			}
+		return word;
+		}
+
+	std::string step5b ( std::string word )
+		{
+/**
+ * Step 5b
+(m > 1 and *d and *L)		->		single letter		    		controll		->		control
+    		roll		->		roll
+
+ */
+		}
+
 	};
 
 
diff --git a/util/Tokenizer.cpp b/util/Tokenizer.cpp
new file mode 100644
index 0000000..5c4f472
--- /dev/null
+++ b/util/Tokenizer.cpp
@@ -0,0 +1,41 @@
+
+#include "Tokenizer.h"
+
+/**
+ * Tokenizer Cstor
+ */
+Tokenizer::Tokenizer ( )
+	{
+	docIndex = new unordered_map< string, vector< int>>;
+	}
+
+/**
+ * Returns pointer to the docIndex dictionary
+ * @return pointer to unordered_map< string, vector< int>>
+ */
+unordered_map< string, vector< int>> *Tokenizer::get ( ) const
+	{
+	return docIndex;
+	}
+
+/**
+ * Executes the Tokenizer
+ * Sends tokens to dictionary
+ * token -> [offsets]
+ * @param originalText
+ * @param offset
+ */
+void Tokenizer::execute ( string originalText, int offset )
+	{
+	vector< string > splitText = splitStr ( originalText, ' ' );
+	string lowerString = "";
+	for ( int i = 0; i < splitText.size ( ); ++i )
+		{
+		lowerString = toLower ( splitText[ i ] );
+		if ( !isStopWord ( lowerString ) )
+			{
+			( *docIndex )[ lowerString ].push_back ( offset );
+			++offset;
+			}
+		}
+	}
diff --git a/util/Tokenizer.h b/util/Tokenizer.h
index cb06ba2..9e9cecd 100644
--- a/util/Tokenizer.h
+++ b/util/Tokenizer.h
@@ -1,6 +1,4 @@
-//
-// Created by anvia on 1/31/2018.
-//
+
 #pragma once
 #include <string>
 #include <unordered_map>
@@ -11,32 +9,15 @@ using namespace std;
 
 class Tokenizer
 	{
-	public:
-		Tokenizer ( )
-			{
-			docIndex = new unordered_map< string, vector< int>>;
-			}
+	
+public:
+	Tokenizer ( );
 
-		unordered_map< string, vector< int>> *get ( ) const
-			{
-			return docIndex;
-			}
+	unordered_map< string, vector< int>> *get ( ) const;
 
-		void execute ( string originalText, int offset )
-			{
-			vector< string > splitText = splitStr ( originalText, ' ' );
-			string lowerString = "";
-			for ( int i = 0; i < splitText.size ( ); ++i )
-				{
-				lowerString = toLower ( splitText[ i ] );
-				if ( !isStopWord ( lowerString ) )
-					{
-					( *docIndex )[ lowerString ].push_back ( offset );
-					++offset;
-					}
-				}
-			}
+	void execute ( string originalText, int offset );
 
 	private:
 		unordered_map< string, vector< int>> *docIndex;
+	
 	};
diff --git a/util/stringProcessing.cpp b/util/stringProcessing.cpp
index d7005bb..aaf6743 100644
--- a/util/stringProcessing.cpp
+++ b/util/stringProcessing.cpp
@@ -99,6 +99,49 @@ string::iterator findNext (string needle, string::iterator haystackPointer )
 	return beginHaystack;
 	}
 
+string::iterator findPrev ( string needle, string::iterator haystackPointer )
+	{
+		auto beginNeedle = needle.begin ( );
+		auto beginHaystack = haystackPointer;
+		while ( *beginHaystack != '\0' )
+			{
+			//keep looking for instance of a match
+			if ( *beginHaystack != *beginNeedle )
+				{
+				--beginHaystack;
+				}
+
+			else if ( *beginHaystack == *beginNeedle )
+				{
+				/* want to keep the original iterator where it is so it
+					can return the beginning of the matched word if found */
+				auto temp = beginHaystack;
+				while ( *temp == *beginNeedle )
+					{
+					--temp;
+					--beginNeedle;
+					//if it hits the end of the needleing, it signifies an exact match
+					if ( *beginNeedle == '\0' )
+						{
+						//this is pointing at the beginning of the match
+						return beginHaystack;
+						}
+
+					}
+				//need to reset because still has to search rest of the string for a match
+				beginNeedle = needle.begin ( );
+				//sets the original text pointer to where the last search left off
+				beginHaystack = temp;
+				}
+
+			else
+				{
+				//DO NOTHING
+				}
+			}
+
+		return beginHaystack;
+	}
 
 
 vector< string > splitStr ( string originalText, char delim )
diff --git a/util/stringProcessing.h b/util/stringProcessing.h
index 106a3d3..9337dc5 100644
--- a/util/stringProcessing.h
+++ b/util/stringProcessing.h
@@ -16,12 +16,16 @@ using namespace std;
  */
 
 
- static set< string > stopWords = { "a", "all", "an", "and", "any", "are", "as", "at", "be", "been", "but", "by", "few", "from",
-                            "for", "have", "he", "her", "here", "him", "his", "how",
-                            "i", "in", "is", "it", "its", "many ", "me", "my", "none", "of", "on", "or", "our", "she",
-                            "some", "the", "their", "them", "there", "they", "that",
-                            "this", "to", "us", "was", "what", "when", "where", "which", "who", "why", "will", "with",
-                            "you", "your" };
+static set< string > stopWords = { "a", "all", "an", "and", "any", "are", "as", "at", "be", "been", "but", "by", "few",
+                                   "from",
+                                   "for", "have", "he", "her", "here", "him", "his", "how",
+                                   "i", "in", "is", "it", "its", "many ", "me", "my", "none", "of", "on", "or", "our",
+                                   "she",
+                                   "some", "the", "their", "them", "there", "they", "that",
+                                   "this", "to", "us", "was", "what", "when", "where", "which", "who", "why", "will",
+                                   "with",
+                                   "you", "your" };
+
 /**
  * Finds the needle in the haystack
  * returns position of first match
@@ -29,7 +33,7 @@ using namespace std;
  * @param needle
  * @return string::iterator
  */
-string::iterator findStr (string needle, string haystack );
+string::iterator findStr ( string needle, string haystack );
 
 /**
  * Finds the next position of the needle in the string
@@ -37,8 +41,15 @@ string::iterator findStr (string needle, string haystack );
  * @param pointer
  * @return string::iterator
  */
-string::iterator findNext (string needle, string::iterator haystackPointer );
+string::iterator findNext ( string needle, string::iterator haystackPointer );
 
+/**
+ * Finds the previous position of the needle in the string
+ * @param needle
+ * @param haystackPointer
+ * @return
+ */
+string::iterator findPrev ( string needle, string::iterator haystackPointer );
 
 /**
  * Returns a vector of strings from @originalText, split by @delim
@@ -47,12 +58,14 @@ string::iterator findNext (string needle, string::iterator haystackPointer );
  * @return
  */
 vector< string > splitStr ( string originalText, char delim );
+
 /**
  * Returns true if @word is a stopword
  * @param word
  * @return
  */
 bool isStopWord ( string word );
+
 /**
  * Returns lowercase @word
  * @param word
@@ -66,5 +79,5 @@ string toLower ( string word );
  * @param word
  * @return
  */
-string stemWord(string word);
+string stemWord ( string word );
 
diff --git a/util/tests/stringProcessingTest.cpp b/util/tests/stringProcessingTest.cpp
index ff020c7..8e35e14 100644
--- a/util/tests/stringProcessingTest.cpp
+++ b/util/tests/stringProcessingTest.cpp
@@ -18,6 +18,10 @@ void testToLower ( );
 
 void testIsStopWord ( );
 
+void testFindNext ( );
+
+void testFindPrev ( );
+
 int main ( )
 	{
 
@@ -31,6 +35,8 @@ int main ( )
 	testSplitStr ( original );
 	testToLower ( );
 	testIsStopWord ( );
+	testFindNext ( );
+	testFindPrev ( );
 
 	cout << "\nTests passed for StringProcessing_unit :D" << endl;
 
@@ -127,4 +133,48 @@ void testIsStopWord ( )
 
 	cout << "testIsStopWord passed" << endl;
 
+	}
+
+void testFindNext ( )
+	{
+	cout << "Testing findNext..." << endl;
+
+	string racecar = "racecar";
+	string hello = "hello";
+	string blank = "";
+
+	assert ( *findNext ( "race", racecar.begin( ) ) == 'r' );
+	assert ( *findNext ( "race", racecar.begin( ) + 4 ) == '\0' );
+	assert ( *findNext ( "car", racecar.begin( ) + 4 ) == 'c' );
+
+	assert ( *findNext ( "hello", hello.begin( ) ) == 'h' );
+	assert ( *findNext ( "ello", hello.begin( ) ) == 'e' );
+	assert ( *findNext ( "ello", hello.begin( ) + 2 ) == 'e' );
+
+	assert ( *findNext ( "", blank.begin( ) ) == '\0' );
+
+	cout << "testFindNext passed" << endl;
+
+	}
+
+void testFindPrev ( )
+	{
+	cout << "Testing findPrev..." << endl;
+
+	string racecar = "racecar";
+	string hello = "hello";
+	string blank = "";
+
+	assert ( *findNext ( "race", racecar.begin( ) ) == '\0' );
+	assert ( *findNext ( "race", racecar.begin( ) + 4 ) == 'r' );
+	assert ( *findNext ( "car", racecar.begin( ) + 4 ) == '\0' );
+	assert ( *findNext ( "car", racecar.begin( ) + 7 ) == 'c' );
+
+	assert ( *findNext ( "hello", hello.begin( ) ) == '\0' );
+	assert ( *findNext ( "ello", hello.begin( ) + 3 ) == '\0' );
+	assert ( *findNext ( "ello", hello.begin( ) + 5 ) == 'e' );
+
+	assert ( *findNext ( "", blank.begin( ) ) == '\0' );
+
+	cout << "testFindPrev passed" << endl;
 	}
\ No newline at end of file
-- 
GitLab