allow data to be the empty string or null