updated enumerable design