finished! its slow need to make it faster