Clean up factory and simplify packages

Now that each version has it's own class, there is no need for a factory.  This is cleaner I think