abstracted out miner components and implemented parallel operations in miner