improve initialization form with optionals parameters