diff --git a/CMakeLists.txt b/CMakeLists.txt
index a319b50c1b39bc54b48ebce82a102c47d7213bcb..7aca180c0ad6e5040696ec7fc54fc3e65e21bd2b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -141,6 +141,13 @@ add_executable(ISRWord-tests
         util/stringProcessing.cpp
         util/Stemmer.cpp )
 
+add_executable(ISREndDoc-tests
+        util/util.cpp
+        util/stringProcessing.cpp
+        util/Stemmer.cpp
+        constraintSolver/ISREndDoc.cpp
+        constraintSolver/tests/ISREndDocTests.cpp)
+
 add_executable(ISROR-tests
         util/util.cpp
         constraintSolver/ISR.cpp
diff --git a/ISREndDoc-tests b/ISREndDoc-tests
new file mode 100755
index 0000000000000000000000000000000000000000..afe84a3bcd747697144bdcf069ffd95680d91517
Binary files /dev/null and b/ISREndDoc-tests differ
diff --git a/ISROR-tests b/ISROR-tests
new file mode 100755
index 0000000000000000000000000000000000000000..1e1d2db6dce52b5624ac63836a68bf90eddfe924
Binary files /dev/null and b/ISROR-tests differ
diff --git a/URLTEST b/URLTEST
new file mode 100755
index 0000000000000000000000000000000000000000..3f979f0ee5a2b354b18b56087b55e9600f0a337d
Binary files /dev/null and b/URLTEST differ
diff --git a/constraintSolver/ISREndDoc.cpp b/constraintSolver/ISREndDoc.cpp
index aa986dff789ce076a23fdb6d4ecc538b80328d11..64ccd81210479e3921862526216df7f41f8ccf6d 100644
--- a/constraintSolver/ISREndDoc.cpp
+++ b/constraintSolver/ISREndDoc.cpp
@@ -61,6 +61,60 @@ DocumentEnding ISREndDoc::next() {
     return currentDoc;
 }
 
+// open up current chunk wordseek mem map
+// seek all possible keys for doc ending
+// check bounds
+void ISREndDoc::seek(Location target) {
+    string key = "=docEnding";
+    string value = "";
+    int currentValueChunk = 0;
+    bool found = false;
+    pair<size_t, size_t> docEndingWordSeek;         // location, offset
+    string input = "";
+    while(!found) {
+        string fileName = util::GetCurrentWorkingDir() +
+                          "/constraintSolver/index-test-files/twitter/" +
+                          to_string(currentChunk) + "-wordseek.txt";
+        if(0 != access(fileName.c_str(), 0)) {
+            return;
+        }
+        MMDiskHashTable currentWordSeek = MMDiskHashTable(fileName, 30, 168);
+        value = currentWordSeek.find(key + to_string(currentValueChunk));
+        cout << "searching through " << value << endl;
+        for(auto comp : value) {
+            switch(comp) {
+                case '<':
+                    docEndingWordSeek = pair<size_t, size_t>();
+                    break;
+                case '>':
+                    docEndingWordSeek.second = stoll(input);
+                    input = "";
+                    break;
+                case ',':
+                    if(target < stoll(input) && target > docEndingWordSeek.first) {
+                        found = true;
+                        break;
+                    }
+                    docEndingWordSeek.first = stoll(input);
+                    input = "";
+                    break;
+                default:
+                    input += comp;
+                    break;
+            }
+            if(found) {
+                string fileName = util::GetCurrentWorkingDir() + "/constraintSolver/index-test-files/twitter/" + to_string(currentChunk) + ".txt";
+                currentFile = open(fileName.c_str(), O_RDONLY);
+                memMap = (char*) mmap(nullptr, util::FileSize(currentFile), PROT_READ, MAP_PRIVATE, currentFile, 0);
+                memMap += docEndingWordSeek.second;
+                cout << "found" << endl;
+                return;
+            }
+        }
+        currentChunk++;
+    }
+}
+
 DocumentEnding ISREndDoc::getCurrentDoc() {
     return currentDoc;
 }
diff --git a/constraintSolver/ISREndDoc.h b/constraintSolver/ISREndDoc.h
index 0d722dfffbd48ab191b230c9f9cb3e1af006cb0e..6fc87a73a974d0570ff81f3272c2ab3cf8b04407 100644
--- a/constraintSolver/ISREndDoc.h
+++ b/constraintSolver/ISREndDoc.h
@@ -24,18 +24,21 @@
 class ISREndDoc
 	{
 public:
+
 	ISREndDoc();
 	DocumentEnding next();
+	void seek(Location target);
 	DocumentEnding getCurrentDoc();
 	unsigned GetDocumentLength ( );
 	unsigned GetTitleLength ( );
 	string getURL ( );
+
 private:
+
 	DocumentEnding currentDoc;
 	char* memMap;
 	int currentChunk;
     int currentFile;
-    vector<size_t> getSeekContents();
 
 };
 
diff --git a/constraintSolver/index-test-files/twitter/0-wordseek.txt b/constraintSolver/index-test-files/twitter/0-wordseek.txt
index 5b6a3e18752b1dc27f90a6bfef1712652e2b2652..4aab68b4e5a9f29803b614995b7d7c67905b5e07 100755
Binary files a/constraintSolver/index-test-files/twitter/0-wordseek.txt and b/constraintSolver/index-test-files/twitter/0-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/1-wordseek.txt b/constraintSolver/index-test-files/twitter/1-wordseek.txt
index ab80b4e1e8273b76eec8cbb2a2b09e991d77c6d8..1bebd7086821cfacc10881b3254c4997ed46aecb 100755
Binary files a/constraintSolver/index-test-files/twitter/1-wordseek.txt and b/constraintSolver/index-test-files/twitter/1-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/10-wordseek.txt b/constraintSolver/index-test-files/twitter/10-wordseek.txt
index 7f7bf66689d75012b51f4b7efc4eaa9ab76dfaea..17798dcec5ef63da2ba7154e273295573386bc04 100755
Binary files a/constraintSolver/index-test-files/twitter/10-wordseek.txt and b/constraintSolver/index-test-files/twitter/10-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/11-wordseek.txt b/constraintSolver/index-test-files/twitter/11-wordseek.txt
index 028ed09fcd86d8127d1547d6770de498d507536e..72fa5c4f59d59c1d8b78e7064c696d546e37381e 100755
Binary files a/constraintSolver/index-test-files/twitter/11-wordseek.txt and b/constraintSolver/index-test-files/twitter/11-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/12-wordseek.txt b/constraintSolver/index-test-files/twitter/12-wordseek.txt
index 4bba46e49233f19e3ad72d79e15bfb7a1df8ce17..8c2a97864d1bca6ef4faf83e4944000cca0075c1 100755
Binary files a/constraintSolver/index-test-files/twitter/12-wordseek.txt and b/constraintSolver/index-test-files/twitter/12-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/13-wordseek.txt b/constraintSolver/index-test-files/twitter/13-wordseek.txt
index 3c9b33a997d10dd1231a8d68756e02cd60c0590c..57bf801cef6284de9eefdb43887088e1bd32afcc 100755
Binary files a/constraintSolver/index-test-files/twitter/13-wordseek.txt and b/constraintSolver/index-test-files/twitter/13-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/14-wordseek.txt b/constraintSolver/index-test-files/twitter/14-wordseek.txt
index 77cf4d02e1c7a6ea2865d243ba8aa6651c174d34..3eebb0dd059833a4eeb9db8c179d26ba0dcfe301 100755
Binary files a/constraintSolver/index-test-files/twitter/14-wordseek.txt and b/constraintSolver/index-test-files/twitter/14-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/15-wordseek.txt b/constraintSolver/index-test-files/twitter/15-wordseek.txt
index 1ee9564153dde02e414eaaa723be1e9ff7084c64..b7b8e36da911ba5333b4d2db980a8fa258664ed6 100755
Binary files a/constraintSolver/index-test-files/twitter/15-wordseek.txt and b/constraintSolver/index-test-files/twitter/15-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/16-wordseek.txt b/constraintSolver/index-test-files/twitter/16-wordseek.txt
index c15cf711ea073e377f8aed5515652d5d17534975..1fd6be82456ee7f40f674954e2df2d8cb5dbfd9b 100755
Binary files a/constraintSolver/index-test-files/twitter/16-wordseek.txt and b/constraintSolver/index-test-files/twitter/16-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/17-wordseek.txt b/constraintSolver/index-test-files/twitter/17-wordseek.txt
index 32a11118d5e9cc636f15d3cfdffbc95651aab6c5..8c0fdb199718e791d977f654303233c4b163b44f 100755
Binary files a/constraintSolver/index-test-files/twitter/17-wordseek.txt and b/constraintSolver/index-test-files/twitter/17-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/18-wordseek.txt b/constraintSolver/index-test-files/twitter/18-wordseek.txt
index a4ac557f5cea35745907beb8c287bbd96c68b851..e14d3db687ef053c50a4f755129585b8ef975f96 100755
Binary files a/constraintSolver/index-test-files/twitter/18-wordseek.txt and b/constraintSolver/index-test-files/twitter/18-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/19-wordseek.txt b/constraintSolver/index-test-files/twitter/19-wordseek.txt
index 58009bf8f36d51e4ff2d6ea7926bd85b4a28a9a6..8f721ca76ad8346320b635acb8f69923646fa9e1 100755
Binary files a/constraintSolver/index-test-files/twitter/19-wordseek.txt and b/constraintSolver/index-test-files/twitter/19-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/2-wordseek.txt b/constraintSolver/index-test-files/twitter/2-wordseek.txt
index 8f83a989b69e14baa850cd95885a316c9588f72b..1308ee2954813771a89bc928ea5516c8be26d086 100755
Binary files a/constraintSolver/index-test-files/twitter/2-wordseek.txt and b/constraintSolver/index-test-files/twitter/2-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/20-wordseek.txt b/constraintSolver/index-test-files/twitter/20-wordseek.txt
index 5e3de856f77b11a8f35e26c1c1fe566f17f2e774..2992797db43f2fcaf7f3a535eb28dc9f84cfd82a 100755
Binary files a/constraintSolver/index-test-files/twitter/20-wordseek.txt and b/constraintSolver/index-test-files/twitter/20-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/21-wordseek.txt b/constraintSolver/index-test-files/twitter/21-wordseek.txt
index ca1a31913f327ef8f7c178a0b25e870cb507e7b8..521af804e03c52e3d5f2ce3e3a6046ee02b2bd89 100755
Binary files a/constraintSolver/index-test-files/twitter/21-wordseek.txt and b/constraintSolver/index-test-files/twitter/21-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/22-wordseek.txt b/constraintSolver/index-test-files/twitter/22-wordseek.txt
index 341766c35289af6a044ad2dcae27ab50bc93837d..38e502962f749f3c7ad143cb3190e4ea2e8e83ca 100755
Binary files a/constraintSolver/index-test-files/twitter/22-wordseek.txt and b/constraintSolver/index-test-files/twitter/22-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/23-wordseek.txt b/constraintSolver/index-test-files/twitter/23-wordseek.txt
index fb70d990c4c3cc7c343ef606d9f7ae8dc89aa740..2382bc0d36aa5749e4b0d05bf2d0ee81f261856c 100755
Binary files a/constraintSolver/index-test-files/twitter/23-wordseek.txt and b/constraintSolver/index-test-files/twitter/23-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/24-wordseek.txt b/constraintSolver/index-test-files/twitter/24-wordseek.txt
index 9398bc82f386ee5c8b19d7a46ac281bf81e91e28..0701c6611cc1d83be1c1e95b12089a36eb4c82dc 100755
Binary files a/constraintSolver/index-test-files/twitter/24-wordseek.txt and b/constraintSolver/index-test-files/twitter/24-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/25-wordseek.txt b/constraintSolver/index-test-files/twitter/25-wordseek.txt
index 2a4f64360b515c75e791da984f8e5bad9fcbe070..5a80be97334a80a77cf868c98d9241f4aaf9a512 100755
Binary files a/constraintSolver/index-test-files/twitter/25-wordseek.txt and b/constraintSolver/index-test-files/twitter/25-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/26-wordseek.txt b/constraintSolver/index-test-files/twitter/26-wordseek.txt
index 75ff7df1744c4096a48278980124711db2bae65e..728eba909a08cd89b41823168b859579b50b07c0 100755
Binary files a/constraintSolver/index-test-files/twitter/26-wordseek.txt and b/constraintSolver/index-test-files/twitter/26-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/27-wordseek.txt b/constraintSolver/index-test-files/twitter/27-wordseek.txt
index 73246a44e28dd107ffbca273e73dd59c41684ff3..9745ced03cdf76c8dba23253a174367490095bba 100755
Binary files a/constraintSolver/index-test-files/twitter/27-wordseek.txt and b/constraintSolver/index-test-files/twitter/27-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/28-wordseek.txt b/constraintSolver/index-test-files/twitter/28-wordseek.txt
index b7ae7a782f353d99af4e5742f3c5907d0b63c881..ae7ba2354b988d862f941a75ba48395c117f01cf 100755
Binary files a/constraintSolver/index-test-files/twitter/28-wordseek.txt and b/constraintSolver/index-test-files/twitter/28-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/29-wordseek.txt b/constraintSolver/index-test-files/twitter/29-wordseek.txt
index 337083e7420c7c8b1988d4eae0aa92aa16355d1e..68f29fb85f5998fc92e99bf4efde359daa3bb9ae 100755
Binary files a/constraintSolver/index-test-files/twitter/29-wordseek.txt and b/constraintSolver/index-test-files/twitter/29-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/3-wordseek.txt b/constraintSolver/index-test-files/twitter/3-wordseek.txt
index 8e752bf92f7c4a3c03a35b80a76000cbdeff871d..6767ed6dbf25da2cb28d1ff02669e51f45f23301 100755
Binary files a/constraintSolver/index-test-files/twitter/3-wordseek.txt and b/constraintSolver/index-test-files/twitter/3-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/30-wordseek.txt b/constraintSolver/index-test-files/twitter/30-wordseek.txt
index 104535c98d75f567d8ecdb7012baed01c6f25262..31c9a479c44e905e948dc5d6a667aa5ee18932e6 100755
Binary files a/constraintSolver/index-test-files/twitter/30-wordseek.txt and b/constraintSolver/index-test-files/twitter/30-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/31-wordseek.txt b/constraintSolver/index-test-files/twitter/31-wordseek.txt
index 68d27dfbcda0eb35850969b50610a34b9ee239d5..1fb47cbfe423a9cc6b345d18c9dd9ab683925cfb 100755
Binary files a/constraintSolver/index-test-files/twitter/31-wordseek.txt and b/constraintSolver/index-test-files/twitter/31-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/32-wordseek.txt b/constraintSolver/index-test-files/twitter/32-wordseek.txt
index 82457b81c94a176db70da071e8e67953623d1370..592eb662b3fe9633ec6e72eae93277763d6d2ab8 100755
Binary files a/constraintSolver/index-test-files/twitter/32-wordseek.txt and b/constraintSolver/index-test-files/twitter/32-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/33-wordseek.txt b/constraintSolver/index-test-files/twitter/33-wordseek.txt
index 85c225826bef21c1484cb0f447e6d13814e5ad45..f18c3b1c918d209becac76e6a52c3592676a73ea 100755
Binary files a/constraintSolver/index-test-files/twitter/33-wordseek.txt and b/constraintSolver/index-test-files/twitter/33-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/34-wordseek.txt b/constraintSolver/index-test-files/twitter/34-wordseek.txt
index c134d490d332012983422d96cca5088f35592e65..b1506b2ea19998fdca73ed1ec5aeb1faf487ee3c 100755
Binary files a/constraintSolver/index-test-files/twitter/34-wordseek.txt and b/constraintSolver/index-test-files/twitter/34-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/35-wordseek.txt b/constraintSolver/index-test-files/twitter/35-wordseek.txt
index dfa8d2e9b0e0b48b759ca64457f742104d0c6dd8..137977b96cfaa2f82f9567547340b5aab2df388d 100755
Binary files a/constraintSolver/index-test-files/twitter/35-wordseek.txt and b/constraintSolver/index-test-files/twitter/35-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/36-wordseek.txt b/constraintSolver/index-test-files/twitter/36-wordseek.txt
index 7f059b503fcc6d866624dc9e9e2d2c3d396220e7..0a91b3fd075c63973a0f6fa8fd67c84ef6d01a7b 100755
Binary files a/constraintSolver/index-test-files/twitter/36-wordseek.txt and b/constraintSolver/index-test-files/twitter/36-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/37-wordseek.txt b/constraintSolver/index-test-files/twitter/37-wordseek.txt
index c34f15538e2a8dcaa27076effa923b310f4fc070..22c3eaab2b77be52b41e33626d0d7674dd6d65b3 100755
Binary files a/constraintSolver/index-test-files/twitter/37-wordseek.txt and b/constraintSolver/index-test-files/twitter/37-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/38-wordseek.txt b/constraintSolver/index-test-files/twitter/38-wordseek.txt
index f56a9b5bd2089bba8725f6aab3f0b20b864f4f4b..ccb1e9de1eb2fe08847a84f65b6023b316144afc 100755
Binary files a/constraintSolver/index-test-files/twitter/38-wordseek.txt and b/constraintSolver/index-test-files/twitter/38-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/39-wordseek.txt b/constraintSolver/index-test-files/twitter/39-wordseek.txt
index aaf3dadcdca262aee1e7d46b32ea9439ed3d6aa1..6b6d2938090fd7f6e77cde29f5c9f97d80c688b6 100755
Binary files a/constraintSolver/index-test-files/twitter/39-wordseek.txt and b/constraintSolver/index-test-files/twitter/39-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/4-wordseek.txt b/constraintSolver/index-test-files/twitter/4-wordseek.txt
index 91d8f30ccb90a45b6e6f6d96366b08fc611adfcb..ecc2018e56f023088e7bb5f73e19e3ff83635086 100755
Binary files a/constraintSolver/index-test-files/twitter/4-wordseek.txt and b/constraintSolver/index-test-files/twitter/4-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/40-wordseek.txt b/constraintSolver/index-test-files/twitter/40-wordseek.txt
index f694ef4d899e7d4c8fd97cfca6c212989bf04328..4f7387b149e77eef719d04463b7eea5faac23ebb 100755
Binary files a/constraintSolver/index-test-files/twitter/40-wordseek.txt and b/constraintSolver/index-test-files/twitter/40-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/41-wordseek.txt b/constraintSolver/index-test-files/twitter/41-wordseek.txt
index ae9516ec24926a4bc0587b7752914c2721a0cded..7f43701567b4cf301267ef5d700eb25adafbfb5b 100755
Binary files a/constraintSolver/index-test-files/twitter/41-wordseek.txt and b/constraintSolver/index-test-files/twitter/41-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/5-wordseek.txt b/constraintSolver/index-test-files/twitter/5-wordseek.txt
index e4fe18bc470707f91c3f341eaf427acd306c3c01..ec1fd65562ad5e353fff2cc6402300c15a01463a 100755
Binary files a/constraintSolver/index-test-files/twitter/5-wordseek.txt and b/constraintSolver/index-test-files/twitter/5-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/6-wordseek.txt b/constraintSolver/index-test-files/twitter/6-wordseek.txt
index 70f648e5da5d61e77c4fbc552b6aab5017bd34af..c3b300d0b8919d1c69e8497ec17c237c081082a2 100755
Binary files a/constraintSolver/index-test-files/twitter/6-wordseek.txt and b/constraintSolver/index-test-files/twitter/6-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/7-wordseek.txt b/constraintSolver/index-test-files/twitter/7-wordseek.txt
index b49f38c5c9da4d3ca668e668897dab374db97372..8076297216afb3712f7ca9b32080b0b0bb25ae0f 100755
Binary files a/constraintSolver/index-test-files/twitter/7-wordseek.txt and b/constraintSolver/index-test-files/twitter/7-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/8-wordseek.txt b/constraintSolver/index-test-files/twitter/8-wordseek.txt
index b0886551cb0697fae3d2a9e53a6a7a8ea0f62618..bfc358a8a50d2ae0e1480550730e3ec5223d44db 100755
Binary files a/constraintSolver/index-test-files/twitter/8-wordseek.txt and b/constraintSolver/index-test-files/twitter/8-wordseek.txt differ
diff --git a/constraintSolver/index-test-files/twitter/9-wordseek.txt b/constraintSolver/index-test-files/twitter/9-wordseek.txt
index d6db95cd9985caf99900524d04cc707b94ba5e9d..09d2c5425f1eea7af7743bb491414c0f53752433 100755
Binary files a/constraintSolver/index-test-files/twitter/9-wordseek.txt and b/constraintSolver/index-test-files/twitter/9-wordseek.txt differ
diff --git a/constraintSolver/tests/ISREndDocTests.cpp b/constraintSolver/tests/ISREndDocTests.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b6ea5b0d1e010c819b4c47e909d69839c8f01bcd
--- /dev/null
+++ b/constraintSolver/tests/ISREndDocTests.cpp
@@ -0,0 +1,9 @@
+#include "../ISREndDoc.h"
+
+using namespace std;
+
+int main() {
+    ISREndDoc endDoc;
+    endDoc.seek(1000);
+    cout << endDoc.next().docEndPosition << endl;
+}
\ No newline at end of file
diff --git a/search-engine b/search-engine
new file mode 100755
index 0000000000000000000000000000000000000000..9621889bec87bb1bbfdd17943385c8e3f466c7fd
Binary files /dev/null and b/search-engine differ