slurp includes a newline we don't want
rename functions to reflect mutation