More explicit about why you chose those two functions to move into the base class? It wasn't immediately obvious, especially since the comments around line ~810 make it sound like the existance of `list_dir` and `run_cgi` were the things that caused you to make the transition to this design.