a first step toward understanding all the cases in the constructor