remove constraints for more expressivity
added some syntax flex