i rather dislike trailing whitespace