Major rewrite

Add support for multiple packaging methods.
Add a base class-free packaging method.  WIP