proper newline handling