shouldn't you enforce constraints here ?