mandatory -> optional constraint