Parallel implementation