Refactored.
Need to find out how to reliably read backwards.