core done, just need to make parallel