diff --git a/Spec-template.docx b/Spec-template.docx
new file mode 100644
index 0000000000000000000000000000000000000000..0050c30c5ab76be9aed662e57ce16246e108ed03
Binary files /dev/null and b/Spec-template.docx differ
diff --git a/TS-0023-SDT_based_Information_Model_and_Mapping_for_Vertical_Industries.md b/TS-0023-SDT_based_Information_Model_and_Mapping_for_Vertical_Industries.md
index 070f9b10f05d9360583dd11764fc68551eda0779..1dad76c28425f59f4cea6b33d15cb7b8da3e6aaf 100644
--- a/TS-0023-SDT_based_Information_Model_and_Mapping_for_Vertical_Industries.md
+++ b/TS-0023-SDT_based_Information_Model_and_Mapping_for_Vertical_Industries.md
@@ -270,7 +270,7 @@ When the Home Appliances Information Model is described based on SDT, the follow
     - When describing the meaning of values for enumeration type elements, they may be described under clause [5.6](#56-enumeration-type-definitions).
     - The enumeration types for the harmonized information model are based on <xs:integer>, and the numeric values are interpreted as specified in clause [5.6](#56-enumeration-type-definitions). 
     - The name of an enumeration type shall start with the prefix "enum". This prefix shall not be used with non-enumeration type names.
-    - All enumeration types are defined under the same domain called Horizontal Domain, which does not contain any other entity. They also must use the same XSD name space identifiers as defined in clause [6.5.1](#651-introduction). Even if an enumeration type is used in multiple module classes from different domains, this enumeration type is defined only once.
+    - All enumeration types are defined under the same domain called Horizontal Domain, which does not contain any other entity. They also shall use the same XSD name space identifiers as defined in clause [6.5.1](#651-introduction). Even if an enumeration type is used in multiple module classes from different domains, this enumeration type is defined only once.
 
 - Rule 8: Rule for unit  in documentation :
 
@@ -349,7 +349,7 @@ When the Home Appliances Information Model is described based on SDT, the follow
       - is writable; and
       - the functionality that is mapped to the data point is an operation, not a configuration function; and
       - the operation may take some time to start and/or to complete, or reach the desired result.  
-    - When a ModuleClass provides current and target data points then the name for the current data point must have the prefix "current", and the name for the target data point must have the prefix "target". Both data points must have the same suffix, for example "currentTemperature" and "targetTemperature".
+    - When a ModuleClass provides current and target data points then the name for the current data point shall have the prefix "current", and the name for the target data point shall have the prefix "target". Both data points shall have the same suffix, for example "currentTemperature" and "targetTemperature".
 
 - Rule 12: Algorithm to generate short names for DeviceClasses, ModuleClasses, Data Points, Actions:
 
@@ -1950,7 +1950,7 @@ This ModuleClass provides capabilities to set and get a text message.
 |Name |Type |R/W |Optional |Unit |Documentation |
 |-|-|-|-|-|-|
 |textMessage |xs:string |RW |false | |The current message value. |
-|supportedMessageValues |list of xs:string |R |true | |List of supported values for the message. Each of the values in this list must be URL-encoded. An encoded value must not contain white spaces. |
+|supportedMessageValues |list of xs:string |R |true | |List of supported values for the message. Each of the values in this list shall be URL-encoded. An encoded value shall not contain white spaces. |
 |minLength |xs:integer |R |true | |The optional minimum length in characters of the message. The default is 0. |
 |maxLength |xs:integer |R |true | |The optional maximum length in characters of the message. The default is unlimited. |
 |messageEncoding |xs:string |R |true | |The optional expected method for character encoding of the message. The default is "UTF-8". |
@@ -5593,7 +5593,7 @@ This ModuleClass provides DM capabilities to control and monitor event logs of t
 
 |Return Type |Name |Arguments |Optional |Description |
 |-|-|-|-|-|
-|none	 |retrieveLog |start: xs:datetime<br />end: xs:datetime |true |Upload from the device the logging data between 'start' and 'end'.<br />'start' must be a date before 'end', and is optional. The default is beginning of time.<br />'end' must be a date after 'start' and is optional. The default is the timestamp of the last available log entry. |
+|none	 |retrieveLog |start: xs:datetime<br />end: xs:datetime |true |Upload from the device the logging data between 'start' and 'end'.<br />'start' shall be a date before 'end', and is optional. The default is beginning of time.<br />'end' shall be a date after 'start' and is optional. The default is the timestamp of the last available log entry. |
 
 
 This action, if provided, requests the IPE to read logging data on the device. This log is then stored in the 'data' datapoint. It is only valid when the 'enabled' datapoint is true. The *start* *and* end arguments are only indications of the timeframe for the log retrieval. If a target device can deliver only partial logs for a given timeframe, for example when the *start* argument is too far in the past and logs are not available for that time anymore, then the device shall deliver logs from the earliest available point in time on.