FIX: always ensure newline at eof