add inline comment to explain these 3 variables. the naming is slightly confusing right now because they are all "current", while "currentRow" refers to the streaming side, and currentMatches refers to the hash side, and currentPosition refers to the position in currentMatches ... I think adding some inline comment would make them clear.