construct parameters not optional