diff --git a/quiche/balsa/balsa_frame.cc b/quiche/balsa/balsa_frame.cc
index 5219bf3..07fb14b 100644
--- a/quiche/balsa/balsa_frame.cc
+++ b/quiche/balsa/balsa_frame.cc
@@ -286,8 +286,6 @@
   QUICHE_DCHECK_CHAR_GE(' ', *line_end)
       << "\"" << std::string(line_begin, line_end) << "\"";
 
-  // TODO(fenix): Investigate whether or not the bounds tests in the
-  // while loops here are redundant, and if so, remove them.
   --current;
   while (current > line_begin && CHAR_LE(*current, ' ')) {
     --current;
diff --git a/quiche/balsa/balsa_frame.h b/quiche/balsa/balsa_frame.h
index 7dd3214..f152d0e 100644
--- a/quiche/balsa/balsa_frame.h
+++ b/quiche/balsa/balsa_frame.h
@@ -38,9 +38,6 @@
 
   enum class InvalidCharsLevel { kOff, kWarning, kError };
 
-  // TODO(fenix): get rid of the 'kValidTerm*' stuff by using the 'since last
-  // index' strategy.  Note that this implies getting rid of the HeaderFramed()
-
   static constexpr int32_t kValidTerm1 = '\n' << 16 | '\r' << 8 | '\n';
   static constexpr int32_t kValidTerm1Mask = 0xFF << 16 | 0xFF << 8 | 0xFF;
   static constexpr int32_t kValidTerm2 = '\n' << 8 | '\n';
@@ -228,8 +225,6 @@
     return current_char == '\n';
   }
 
-  // TODO(fenix): get rid of the following function and its uses (and
-  // replace with something more efficient).
   // Return header framing pattern. Non-zero return value indicates found,
   // which has two possible outcomes: kValidTerm1, which means \n\r\n
   // or kValidTerm2, which means \n\n. Zero return value means not found.
diff --git a/quiche/balsa/balsa_headers.h b/quiche/balsa/balsa_headers.h
index 106b3d7..0005bb5 100644
--- a/quiche/balsa/balsa_headers.h
+++ b/quiche/balsa/balsa_headers.h
@@ -448,9 +448,6 @@
       absl::flat_hash_map<absl::string_view, std::vector<absl::string_view>,
                           StringPieceCaseHash, StringPieceCaseEqual>;
 
-  // TODO(fenix): Revisit the amount of bytes initially allocated to the second
-  // block of the balsa_buffer_. It may make sense to pre-allocate some amount
-  // (roughly the amount we'd append in new headers such as X-User-Ip, etc.)
   BalsaHeaders()
       : balsa_buffer_(4096),
         content_length_(0),
@@ -523,8 +520,6 @@
   // a new header if none exist.  See 'AppendHeader' below for additional
   // comments about ContentLength and TransferEncoding headers. Note that this
   // will allocate new storage every time that it is called.
-  // TODO(fenix): modify this function to reuse existing storage
-  // if it is available.
   void ReplaceOrAppendHeader(absl::string_view key,
                              absl::string_view value) override;
 
@@ -1246,9 +1241,6 @@
     // The condition below exists so that ++(end() - 1) == end(), even
     // if there are only 'skip == true' elements between the end() iterator
     // and the end of the vector of HeaderLineDescriptions.
-    // TODO(fenix): refactor this list so that we don't have to do
-    // linear scanning through skipped headers (and this condition is
-    // then unnecessary)
     if (idx_ == header_lines_size) {
       idx_ = original_idx + 1;
     }
diff --git a/quiche/balsa/balsa_headers_test.cc b/quiche/balsa/balsa_headers_test.cc
index f68548f..d132a51 100644
--- a/quiche/balsa/balsa_headers_test.cc
+++ b/quiche/balsa/balsa_headers_test.cc
@@ -2577,14 +2577,6 @@
 }
 
 TEST(BalsaHeaders, CopyFrom) {
-  // TODO(fenix): test -all- member variables.
-  // (remaining: transfer_encoding_is_chunked_
-  //             content_length_
-  //             content_length_status_
-  //             parsed_response_code_
-  //             connection_close_token_found_
-  //             connection_keep_alive_token_found_
-  //             content_encoding_gzip_token_found_)
   BalsaHeaders headers1, headers2;
   absl::string_view method("GET");
   absl::string_view uri("/foo");
