Finish off the factory. We still need a way to select which one to create at runtime