Support multiple datatype