model: redesign, constrains check