Changed return type to instancetype