constraint on constructor