I'm fine with this implementation, but I'd like to comment here on the indentation and spacing in this pull request. It seems like your indentation is set to two spaces, whereas the Kiwi project uses 4 spaces. As a result, the diffs are harder to read, especially in cases where your new code is mixed with existing code. Could you modify your PR to use 4 spaces?

Also, it seems like most of the Kiwi codebase uses egyptian braces, like so:

```objc
if (YES) {
    // ...
} else {
    // ...
}
```

There are some parts of the code which place `else` on new lines, but at the very least this file places else on the same line. I'd prefer it if you kept things consistent in this file and others by placing `else` on the same line.