Put semantic constraints in constructors