public void SplitInputChunk(IWordCounter wordCounter, string buffer) { var wholeBuffer = Previous + buffer; var lastPositionOfWordBoundary = wordCounter.LastPositionOfWordBoundary(wholeBuffer); Current = wholeBuffer.Substring(0, lastPositionOfWordBoundary); var fromLastWordBoundaryOnwards = wholeBuffer.Substring(lastPositionOfWordBoundary); Previous = fromLastWordBoundaryOnwards; }