Allow for custom error messages, allow for nil and/or blank values