better constraint evaluation