Using instancetype instead of id