draft chunking. Have to fully implement ExecutorService