require final newline