use com.barbdean.utils for reading the data;  add comments at the top describing the algorithm