Use instancetype instead of id for initialisers