- I'm all for (2)
- I think `dynamic` is useless in your latest comment,
- You must be right for dfs (i.e., the other less likely option would be extensibility by inheritance)
- I think there are lots of place where the `_` is missing for private variables...