add extra constraint `notEmpty`