Completely unrelated to the topic at hand, I noticed you have your packages declared with:
package foo; {
...
}
Which I don't really understand. It makes it look almost like the package is defined within the block. But it's really a bare block with a package declaration just before it. That means the package declaration won't be limited to the block, as it would with something like:
{
package foo;
...
}
So while your style looks nice, I think it might be misleading, and I'm wondering if there's any reason you use it that I'm not thinking of.