introducing new data type with constrains