return new instance after ->set()