Added binary search implementation and mark and sweep to *try* and be more efficient with the search space. Inconclusive as to whether it actually helps at all.