Complete

The code is 'finished'. Need to improve efficiency, utility function,
search technique etc