Make implementation multithread