moved out set/slot data to a factory