explanation of datatype