public ControlledDevice(string name, int priority, Action<IData> populateData, Action<IControlToken> dispose) { this.Name = name; this.Priority = priority; this.disposeAction = dispose; this.data = new Data(); populateData(this.data); }