Switched to using an OrderedDict for the search function output
Split appart
Split appart and rebuilt core.py, split appart search and keyword computations