use 'id' where 'instancetype' is not applicable as return type