I'm leaning towards the factory methods, although I'm not 100% decided yet.