Keep TableOfContentsFilter interface consistent with other filters by removing attr_reader. Also, reduce complexity by removing private methods and keep changes within #call. Finally, implement #build_toc to wrap result[:toc] in an unordered list.