fix a bug of Data instance
add Hashable instance