added data type discernment features