constraint based experience