merge WithInitValue and WithoutInitValue