We should create a custom `struct` type instead. An array is too opaque—it's hard to remember what the elements mean.

Note that the block will have to be `__unsafe_unretained` to be stored in the `struct`, but that's okay, since it won't be released until this method returns.