modify constructor