Improved sequential and parallel