Let's go with the factory methods for now, and see how it turns out.