Return instancetype instead of id