use both contiguous and non contiguous analysis.
experiment with multithreading and compare contiguous and non-contiguous.  make some decisions and put them in the TODO.