Fixing a hoisting error in `observer.fire()`, minor optimization for `observer.remove()`, optimized stack of calls to `string.explode()`