Perhaps the factory approach is not a good idea after all.