That definitely makes sense. As @twpayne mentioned earlier, this commit is actually a subset of the changes from #1588. If you think that *Internal methods are a good intermediate solution, I can make that change.