add implementation for multicore