More refactoring, add in Futures-based implementation as default instead of using .par.