id, not instancetype.  We can't make the required polymorphism guarantees.