if `explode` isn't set, then it defaults to true is a little unintuitive. What if we had a static class variable `$defaultOptions` that was used with an `array_merge` inside of these functions.  That way there is always an `explode` key, and it's very clear what the default value is.