Why did you use `assign`/`void *` instead of `unsafe_unretained`/`id`?