refactor dataflow to take in block lists