So i first thought of adding a seperate enum for Arrays then later moved them to existing PDataType.  All the function impl is in PDataTypeForArray class.  But there are some code duplication in that.