practical try at making sensible modules that will work in browsers, rhino, and node, rather than the current (workable, but nasty) namespace hacks