performance: avoid large mem alloc as a result of using String.split()