added experimental multiprocessing method