public Block Add(object data) { if (data == null) { throw new ArgumentNullException(nameof(data)); } var previousBlock = this._blocks.LastOrDefault(); var block = Block.Create((ulong)this._blocks.Count, data, this._effort, previousBlock); this._blocks.Add(block); return(block); }