better whitespace splitting/matching