whitespace only
handle empty params gracefully