/// <summary>
 /// Construction of elements
 /// with a dynamic element (not working in constructor's function)
 /// </summary>
 /// <param name="type">value type</param>
 /// <param name="op">operator</param>
 /// <param name="value">value</param>
 /// <param name="owner">owner object</param>
 protected void Construct(byte type, char op, dynamic value, IArithmetic owner)
 {
     this[typeValueName]          = type;
     this[arithmeticOperatorName] = op;
     this[valueName]    = value;
     this[hashCodeName] = owner.GetHashCode();
     this.ownerObject   = owner;
     owner.Fetch       += Owner_Fetch;
     owner.Unfetch     += Owner_Unfetch;
 }