added data_factory, fixed guid and initialization