docs: function (puzzle, words) {
                  var options = {
                      height: puzzle.length,
                      width: puzzle[0].length,
                      orientations: allOrientations,
                      preferOverlap: true
                  }, found = [], notFound = [];
                  for (var i = 0, len = words.length; i < len; i++) {
                      var word = words[i], locations = findBestLocations(puzzle, options, word);
                      if (locations.length > 0 && locations[0].overlap === word.length) {
                          if (locations.length > 0 && locations[0].overlap === word.length) {
                              locations[0].word = word;
                              found.push(locations[0]);
                          }
                          else {
                              notFound.push(word);
                          }
                      }
                  }
                  return { found: found, notFound: notFound };
              }