Trying to understand developing a new package

Good points. I have so far resisted breaking up one project into multiple packages.
I tried sub-modules, but ended up having lots of using and export statements all over the place (and had to deal with functions with the same functionality defined in different modules, leading to name conflicts). So I abandoned that approach.