change id to instancetype in initWithCoder