initialization method modified