using shared pointers
parallel execution is part of core, not of algorithm