Profile

Took a few days since I did this over a few evenings since I'm busy between 9am-5pm. :)
Also consider using `match` here, would probably save a bit of memory building an array with `split`

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match