add contructor patern