checkpoint
made a lot of changes here

essentially things are more generalized and cleaned up,

there are still some outstanding problems:
  * getting listviews to scroll where you want
  * using JSON directly and cache results in db
  * implement remaining DataReadTaskFactory methods
  * create DataWriteTask